C での仮想コンストラクターの回避 : Bjarne Stroustrup からの洞察
オブジェクト指向プログラミングでは一般にポリモーフィズムを可能にするために仮想関数を利用しますが、C には仮想コンストラクターの概念。この特殊性が多くの開発者を当惑させ、次のような疑問が生まれました: なぜこの機能が C にないのですか?
この機能がない理由を詳しく調べるために、C の作成者である Bjarne Stroustrup の知恵を求めてみましょう。 C スタイルとテクニックの FAQ に次の説明がありました:
「仮想呼び出しは、オブジェクトに関する部分的な情報が与えられたときに機能を取得するメカニズムです。具体的には、仮想呼び出しオブジェクトの特定の型ではなくインターフェイスのみを認識している場合でも、関数を呼び出すことができます。ただし、オブジェクトの作成には完全な情報、特にインスタンス化するオブジェクトの正確な型を知っている必要があるため、コンストラクターの呼び出しを仮想化することはできません。 🎜>
この論理的推論は、C に仮想コンストラクターがない理由を説明します。この制限にもかかわらず、Stroustrup の FAQ では、仮想コンストラクターに頼らずに同様の機能を実現する代替方法を提供するコード スニペットも提供されています。以上が仮想コンストラクターが C に存在しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。