为什么C++强制成员变量的初始化按照声明的顺序

c#

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

回答

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


以上是为什么C++强制成员变量的初始化按照声明的顺序的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>