C++ に仮想コンストラクターがないのはなぜですか?
ベストアンサー1
当事者から直接聞いてみましょう。:)
Bjarne Stroustrup の C++ スタイルとテクニックに関する FAQ よりなぜ仮想コンストラクターがないのでしょうか?
仮想呼び出しは、部分的な情報に基づいて作業を実行するメカニズムです。特に、「仮想」を使用すると、オブジェクトの正確な型ではなく、インターフェイスのみを知って関数を呼び出すことができます。オブジェクトを作成するには、完全な情報が必要です。特に、作成するオブジェクトの正確な型を知っている必要があります。したがって、「コンストラクターの呼び出し」は仮想にすることはできません。
FAQ エントリでは、仮想コンストラクターを使用せずにこの目的を達成する方法のコードが提供されています。