调用父构造函数C ++

时间:2015-01-14 13:54:43

标签: c++ inheritance constructor

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

就是这样:

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

与此不同:

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

不知?

3 个答案:

答案 0 :(得分:3)

这只是提供了选择合适的父构造函数并将参数传递给它的方法。没有其他优势。 在您的示例中,两行之间没有区别。

答案 1 :(得分:1)

如果它是默认构造函数,那么您可以将其保留,因为编译器会自动为您调用它。但是显式调用构造函数的可读性是好的。

答案 2 :(得分:0)

它没有什么不同,但是你的问题的答案是肯定的,调用父构造函数有时是有利的。当您想要调用除了没有参数的构造函数之外的其他东西时(例如,如果您没有参数),那就是这种情况:

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