1 |
|
gcc编译会给出Wreorder的警告
可能的输出
1 | B(-1134720736) |
https://cppinsights.io/处理的结果如下
1 | class A |
but why? 原因在于C++类的析构要按成员构造的逆序对成员进行析构,而构造函数是可以重载的,
为了确保析构的顺序,构造时按成员声明的顺序进行构造,而非初始化列表中出现的顺序。
1 |
|
gcc编译会给出Wreorder的警告
可能的输出
1 | B(-1134720736) |
https://cppinsights.io/处理的结果如下
1 | class A |
but why? 原因在于C++类的析构要按成员构造的逆序对成员进行析构,而构造函数是可以重载的,
为了确保析构的顺序,构造时按成员声明的顺序进行构造,而非初始化列表中出现的顺序。