调用父构造函数 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 行之间没有区别。
在派生的 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 行之间没有区别。