自動保存期間を持つ 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] デストラクタで
objA
andobjB
が呼び出されます。これらのデストラクタに同様のシーケンス要件はありますか? - 最後に、活性分析が
objA
ポイント [B] の後にデッドであることを示した場合、C++ コンパイラはobjA
「初期」、つまりコードのポイント [B] と [C] の間でデストラクタを呼び出すことが許可されていますか?