C++ にはなぜ仮想コンストラクタがないのでしょうか? 質問する

C++ にはなぜ仮想コンストラクタがないのでしょうか? 質問する

C++ に仮想コンストラクターがないのはなぜですか?

ベストアンサー1

当事者から直接聞いてみましょう。:)

Bjarne Stroustrup の C++ スタイルとテクニックに関する FAQ よりなぜ仮想コンストラクターがないのでしょうか?

仮想呼び出しは、部分的な情報に基づいて作業を実行するメカニズムです。特に、「仮想」を使用すると、オブジェクトの正確な型ではなく、インターフェイスのみを知って関数を呼び出すことができます。オブジェクトを作成するには、完全な情報が必要です。特に、作成するオブジェクトの正確な型を知っている必要があります。したがって、「コンストラクターの呼び出し」は仮想にすることはできません。

FAQ エントリでは、仮想コンストラクターを使用せずにこの目的を達成する方法のコードが提供されています。

おすすめ記事