因此,在块\程序的末尾,编译器调用它自己的已定义对象的析构函数。调用析构函数是否有特定的顺序?
class Foo1{
public:
~Foo1 () {cout << "Foo1 DTOR" << endl;}
};
class Foo2{
public:
~Foo2 () {cout << "Foo2 DTOR" << endl;}
};
void main(){
Foo1 A;
Foo2 B;
}
运行这个程序我有输出:
Foo2 DTOR
Foo1 DTOR
它是否总是从最后一个定义的对象开始并以第一个对象结束?或者这种行为无法预测,我的输出是这种情况特有的?