显式调用基类构造函数的重要性是什么?

Lij*_*hew 3 c++

class A {
    A() { }
};

class B : public A {
    B() : A() { }
};
Run Code Online (Sandbox Code Playgroud)

为什么我们需要在构造函数中显式调用基类的构造B函数?不隐含吗?

Dra*_*sha 11

这是隐含的.如果A有一个带有参数的构造函数,你需要这种语法,这是传递它们的方法.


Tho*_*mas 8

这是隐含的,没有必要的.如果未显式调用基类构造函数,则使用默认构造函数(没有参数的构造函数).

如果基类没有默认构造函数,或者如果要调用与默认构造函数不同的构造函数,则只需要显式调用构造函数.

为了清楚起见,仍然可以添加对基类构造函数的显式调用,但这不是必需的.