正在阅读this answer并且让我感到惊讶,建议您必须总是在派生类构造函数中调用基类构造函数。如果您只使用默认构造函数,请考虑以下内容:
class Bar : public Foo {
private:
int y;
public:
Bar() : Foo(), y(0) {
}
...
这里真的有必要调用Foo()
吗?
答案 0 :(得分:2)
您不需要在构造函数中显式调用基类构造函数,在这种情况下,编译器隐式调用默认构造函数,或者您获得编译时错误,如果没有可调用的话 同样适用于非POD的成员。
另一种选择是成员初始化列表仅,包含对您的类的另一个构造函数的委派,从而创建委托构造函数。
答案 1 :(得分:2)
答案 2 :(得分:0)
你不需要打电话给他们,但我认为这在可读性方面是一个好主意,并且也证明了那些审查你理解该类派生的代码的人。