小编典典

调用基类构造函数的规则是什么?

all

从派生类调用基类构造函数的 C++ 规则是什么?

例如,我知道在 Java 中,您必须将其作为子类构造函数的第一行(如果不这样做,则假定隐式调用无参数的超级构造函数 - 如果缺少,则会出现编译错误) .


阅读 132

收藏
2022-03-02

共1个答案

小编典典

如果它们没有参数,则会自动为您调用基类构造函数。如果要调用带参数的超类构造函数,则必须使用子类的构造函数初始化列表。与 Java 不同,C++
支持多重继承(无论好坏),因此必须通过名称引用基类,而不是“super()”。

class SuperClass
{
    public:

        SuperClass(int foo)
        {
            // do something with foo
        }
};

class SubClass : public SuperClass
{
    public:

        SubClass(int foo, int bar)
        : SuperClass(foo)    // Call the superclass constructor in the subclass' initialization list.
        {
            // do something with bar
        }
};

此处此处有关构造函数初始化列表的更多信息。

2022-03-02