假设我有A,B和C类
如果我那么容器如下
Container::Container()
:A(10),B(20),C(30)
{
//Do something specific
}
Run Code Online (Sandbox Code Playgroud)
现在,如果我调用Container的析构函数,即~Container(),我注意到析构函数以相反的顺序被调用,即~C(),~B()然后~A()
这件事总是固定的吗?任何人都可以对构造初始化集的析构函数的顺序进行更多说明吗?
订单是固定的,但不是初始化列表.
这是在类中声明成员的相反顺序.
class Container
{
A a;
B b;
C c;
};
Run Code Online (Sandbox Code Playgroud)
当一个Container对象被销毁时,成员被销毁的顺序是c,b和a.
如果您按照与声明的顺序不同的顺序初始化成员,某些编译器会发出警告,并保持一致性.