【发布时间】:2021-09-12 06:18:22
【问题描述】:
我知道在 C++ 中,类头中的成员声明定义了初始化顺序。你能告诉我为什么 C++ 选择这个设计吗?强制初始化顺序而不是遵循初始化列表有什么好处?
【问题讨论】:
标签: c# c++ initialization initialization-order
我知道在 C++ 中,类头中的成员声明定义了初始化顺序。你能告诉我为什么 C++ 选择这个设计吗?强制初始化顺序而不是遵循初始化列表有什么好处?
【问题讨论】:
标签: c# c++ initialization initialization-order
构造函数可以重载,而析构函数不能。如果数据成员可以针对不同的构造函数以不同的顺序进行初始化,那么析构函数就不能保证以数据成员的构造相反的顺序对数据成员执行销毁(对于由不同构造函数构造的对象)。
【讨论】:
std::optional/std::variant)。