21

我知道在 C++ 中,类头中的成员声明定义了初始化顺序。你能告诉我为什么 C++ 选择这种设计吗?强制初始化顺序而不是遵循初始化列表有什么好处吗?

4

1 回答 1

34

构造函数可以重载,而析构函数不能。如果数据成员可以为不同的构造函数以不同的顺序初始化,那么析构函数不能保证以数据成员的构造相反的顺序对数据成员执行销毁(对于由不同构造函数构造的对象)。

于 2021-06-30T05:25:07.663 回答