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

Mary-Kate Olsen
リリース: 2024-11-18 07:23:02
オリジナル
856 人が閲覧しました

Why Doesn't C   Have a Virtual Constructor?

C には仮想コンストラクターがありますか?

他の言語とは異なり、C には仮想コンストラクターがありません。これは疑問を引き起こしました: なぜそうしないのですか?

作成者自身からの答え

C の父である Bjarne Stroustrup が洞察力に富んだ説明を提供しています:

「仮想呼び出しは、部分的な情報を与えられて作業を完了するためのメカニズムです。[...] オブジェクトを作成するには、完全な情報が必要です。[...]したがって、コンストラクターへの呼び出しを仮想にすることはできません。

概念の理解

本質的に、仮想関数は動的バインディングを可能にし、コードがオブジェクトと対話できるようにします。正確なクラスを知らずにさまざまな型を作成します。ただし、オブジェクトの作成にはインスタンス化される型に関する正確な情報が必要であるため、仮想コンストラクターは概念的に不可能になります。

代替アプローチ

仮想コンストラクターでは、C は同様の機能を実現するための代替アプローチを提供します。 Stroustrup による FAQ エントリでは、そのようなソリューションのコードが提供されており、仮想コンストラクターを使用せずに目的の動作を実現する方法を示しています。

以上がC には仮想コンストラクターがないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート