在派生类构造函数中显式调用父构造函数有什么好处吗?
就是这样:
LockableDoor :: LockableDoor() : Door(), locked_(true) { }
与此不同:
LockableDoor :: LockableDoor() : locked_(true) { }
不知?
答案 0 :(得分:3)
这只是提供了选择合适的父构造函数并将参数传递给它的方法。没有其他优势。 在您的示例中,两行之间没有区别。
答案 1 :(得分:1)
如果它是默认构造函数,那么您可以将其保留,因为编译器会自动为您调用它。但是显式调用构造函数的可读性是好的。
答案 2 :(得分:0)
它没有什么不同,但是你的问题的答案是肯定的,调用父构造函数有时是有利的。当您想要调用除了没有参数的构造函数之外的其他东西时(例如,如果您没有参数),那就是这种情况:
A::A(int) {}
B::B(int i): A(i) {} // derived from A