ホームページ > バックエンド開発 > C++ > 純粋仮想関数が「=0」で初期化されるのはなぜですか?

純粋仮想関数が「=0」で初期化されるのはなぜですか?

Susan Sarandon
リリース: 2024-12-04 18:31:14
オリジナル
917 人が閲覧しました

Why is a Pure Virtual Function Initialized with

純粋仮想関数のデフォルトの初期化は「=0」であるのはなぜですか?

オブジェクト指向プログラミングでは、純粋仮想関数は重要な概念です。名前が示すように、これらはプログラムを完成させる前に派生クラスに実装する必要がある仮想関数です。関数を純粋仮想として宣言するには、次の構文を使用します。

virtual void fun() = 0;
ログイン後にコピー

純粋仮想関数の注目すべき点の 1 つは、デフォルトで 0 に初期化されることです。これにより、「なぜこの特定の値が選択されるのか?

一般的な想定に反して、「=0」初期化は、純粋仮想関数の vtable エントリを NULL に設定することを目的としたものではありません。これは、 C の作成者である Bjarne Stroustrup によって、著書『The Design & Evolution of C』で確認されました。

The curious "=0" syntax was chosen ... because at the time I saw no chance of getting a new keyword accepted.
ログイン後にコピー
言い換えれば、「=0」の選択は純粋に構文上のものであり、当時、純粋な仮想関数を表現するより良い方法がなかったためです。

Stroustrup も、 vtable の NULL エントリは、純粋な仮想関数を実装する理想的な方法ではありません。最新の C コンパイラはこの側面をより効率的に処理し、=0 初期化に依存せずに純粋な仮想関数が適切に処理されるようにします。

以上が純粋仮想関数が「=0」で初期化されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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