自動保存期間を持つ 2 つのオブジェクトがあるとします。
{
ClassA objA(...);
ClassB objB(...);
// [A] code that uses objA and objB.
// [B] objA is no longer used after this point.
// ... more code ...
} // [C] objA and objB go out of scope.
- C++ 標準は、
objAおよびのコンストラクターの相対的な順序付けを指定していますobjBか? たとえば、のコンストラクターが呼び出されobjAたときに、 のコンストラクターによって引き起こされる副作用が表示されると想定できますか?objB - [C] デストラクタで
objAandobjBが呼び出されます。これらのデストラクタに同様のシーケンス要件はありますか? - 最後に、活性分析が
objAポイント [B] の後にデッドであることを示した場合、C++ コンパイラはobjA「初期」、つまりコードのポイント [B] と [C] の間でデストラクタを呼び出すことが許可されていますか?