调用父构造函数 C++

calling a parent constructor C++

在派生的 class 构造函数中显式调用父构造函数有什么好处吗?

这是:

LockableDoor :: LockableDoor() : Door(), locked_(true) { }

与此不同:

LockableDoor :: LockableDoor() : locked_(true) { }

不知何故?

如果它是您想要的默认构造函数,那么您可以保留它,因为编译器会自动为您调用它。但是显式调用 constructor.

对可读性有好处

没什么不同,但你的问题的答案是肯定的,调用父构造函数有时是有利的。当你想调用构造函数以外的东西而没有参数时就是这种情况(特别是如果你有 none 个):

A::A(int) {}
B::B(int i): A(i) {}       // derived from A

这只是提供了您 select 适当的父构造函数并将参数传递给它的方式。没有其他优点。 在您的示例中,2 行之间没有区别。