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

bod*_*ydo 3 c++ constructor default-constructor

假设我有一些类C,我继承它并命名这个类D.我是否总是必须调用C默认构造函数,如下例所示:

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

class D {
    public:
        D() : C() { ... }
};
Run Code Online (Sandbox Code Playgroud)

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

谢谢,Boda Cydo.

Bri*_*ndy 11

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