そのため、ブロック\プログラムの最後で、コンパイラは定義されたオブジェクトのデストラクタを独自に呼び出します。デストラクタが呼び出される特定の順序はありますか?
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
最後に定義されたオブジェクトから始まり、最初のオブジェクトで終わるのは常にどのように機能するのでしょうか? または、この動作は予測できず、私の出力はこの状況に特有のものですか?