次のような状況があります。
クラス B のスタック メンバー オブジェクトを含むクラス A があります。
Class A{
B b;
}
B オブジェクトを使用して、A の初期化と破棄の動作を再定義しています。
Class B{
B(){cout<<"taken care of some specific context initialization"<<endl;}
~B(){cout<<"cleaning the context initialization done before"<<endl;}
}
b が破棄されたときに ~B() が呼び出されているため、これはこれまでのところ機能しています (A デストラクタの後に行われると思います)。
これは私が探している動作ですが、コンパイラが次のように言う可能性が怖いです。私はそれが起こるべきだと思いますが、どのコンパイラでも可能ですか? というか、Aが滅びるまで待たなければならないというのが基準なのか?
前もって感謝します