いいえ。
同じストレージの場所に 2 番目のオブジェクトを構築すると、前のオブジェクトの有効期間が終了します (§3.8/1)。
[...] タイプのオブジェクトの存続期間は、次の場合にT
終了します。
T
自明でないデストラクタ (§12.4) を持つクラス型の場合、デストラクタの呼び出しが開始されます。
- オブジェクトが占有するストレージは再利用または解放されます。
2 番目のオブジェクトが作成されるとA
、暗黙のデフォルト コンストラクターがあるため、x
メンバーはデフォルトで初期化されるため、初期化は実行されません (§8.5/6)。
タイプのオブジェクトをデフォルトで初期化T
するとは、次のことを意味します。
[...]
それ以外の場合、初期化は実行されません。
これは、オブジェクトの値が不定であることを意味します (§5.3.4/15):
type のオブジェクトを作成するnew式T
は、次のようにそのオブジェクトを初期化します。
- new-initializerが省略された場合、オブジェクトはデフォルトで初期化されます(§8.5)。初期化が実行されない場合、オブジェクトの値は不定です。
また、以前にその保存場所で別のオブジェクトを初期化したために値が不確定ではないと思われる場合: 標準では、以前のオブジェクトのプロパティは、その有効期間が終了すると適用されなくなると言って、その可能性も破棄します (§3.8/3)。 :
この国際規格全体でオブジェクトに帰するプロパティは、そのオブジェクトの存続期間中のみ、特定のオブジェクトに適用されます。