在C ++中总是需要调用基类构造函数吗?

时间:2010-07-05 01:40:40

标签: c++ constructor default-constructor

假设我有一些类C,并且我从中继承并命名此类D。我是否总是必须调用C的默认构造函数,如下例所示:

class C {
    public:
        C() { ... }
};

class D {
    public:
        D() : C() { ... }
};

请注意C只有默认构造函数。我必须从D打电话吗?我无法弄清楚如何找到它。

谢谢,Boda Cydo。

1 个答案:

答案 0 :(得分:11)

您不需要在派生类型构造函数的初始化列表中指定基类构造函数。省略时,将尝试不带参数调用基础构造函数。如果不存在这样的无参数基础构造函数,那么您将得到编译错误。