C++调用父构造函数

calling a parent constructor C++

本文关键字:构造函数 调用 C++      更新时间:2023-10-16

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

是这样的:

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

与此不同:

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

不知何故?

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

这没有什么不同,但你的问题的答案是肯定的,有时调用父构造函数是有利的。当您想要调用没有参数的构造函数以外的其他内容时,就是这种情况(特别是如果您没有这些参数):

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

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