C++のゴールデンルールの1つは、コンストラクタが正常に完了し、デストラクタが開始されたときにインスタンスのライフタイムが始まることです。仮想コンストラクタイディオム - 虚偽または完全な完全フォールシス
このルールから、考えられる派生インスタンスが有効でないため、未定義の動作につながる可能性があるため、コンストラクタ内で仮想メソッドを呼び出すことはお勧めできません。
C++ FAQ 20.8で説明した仮想コンストラクタの慣用句は、逆のことを示すようです。
私の質問は次のとおりです。
- そのコンストラクタとデストラクタから呼び出しに対するオブジェクトの寿命を定義するための標準の正確な定義は何ですか?
- さらに、いわゆる「仮想コンストラクター・アイドーム」は有効ですか?
これは逆のことを示していますか?私はそれに反することは何も見ません... –