c++ - 为什么先调用基类构造函数再调用派生类构造函数

标签 c++ constructor destructor

按照c++规则,在定义派生类对象时,先调用基类构造函数初始化基类成员,再初始化派生类构造函数。对于析构函数,规则恢复。

我想知道为什么要遵守这条规则。为什么要先基类构造函数,再派生类构造函数?这样做有什么理由吗?或者仅仅因为它是 c++ 的定义。

谢谢,

最佳答案

因为派生类的成员可能依赖于基类的成员,所以必须先初始化基类的成员。

你不能反驳。

关于c++ - 为什么先调用基类构造函数再调用派生类构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14837094/

相关文章:

c++ - 我可以执行获取我的 `std::future` 并等待它吗?

c++ - 删除外部类实例中的内部类实例

php - 在销毁/取消设置(执行 __destruct() )后如何访问对象的属性?

c++ - 未捕获 LLVM IR : find_if, var

c# - 如何从 C# 将双指针传递给 COM 并在 COM 中初始化它

java - 为每一行文本文件创建对象

scala - 替代构造函数中的固定类型参数

PHP抽象类构造函数不工作

PHP 析构函数和与 C++ 析构函数的关系?

c++ - 带有模板参数的 decltype