ホームページ > バックエンド開発 > C++ > C で純粋仮想関数を宣言するために `= 0` が使用されるのはなぜですか?

C で純粋仮想関数を宣言するために `= 0` が使用されるのはなぜですか?

DDD
リリース: 2024-12-17 20:57:10
オリジナル
629 人が閲覧しました

Why is `= 0` Used to Declare Pure Virtual Functions in C  ?

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

純粋仮想関数は、C のオブジェクト指向プログラミング モデルの重要な部分です。これらにより、クラスは派生クラスによってオーバーライドされる必要があるメソッドを定義できるようになり、実質的に派生クラスにそれらのメソッドの実装を提供するよう強制できます。

純粋仮想関数を宣言する場合、0 で初期化するのが一般的です。これには、このため、関数の仮想テーブル エントリを NULL に設定するにはこの初期化が必要であると多くの人が信じています。しかし、この理解は間違っています。

純粋仮想関数宣言の最後の =0 は初期化ではありません。代わりに、これはこの関数が純粋な仮想関数であることを示す構文です。これは、Bjarne Stroustrup 氏の著書『The Design & Evolution of C』で説明されているように、言語の設計プロセスにおける制限の結果です。

純粋仮想関数の実装には、必ずしも仮想テーブル エントリを次のように設定する必要はありません。 NULL。実際、Stroustrup は、このアプローチは純粋仮想関数を実装する最良の方法ではないと明示しています。

では、なぜ純粋仮想関数には 0 が使用されるのでしょうか?答えは、技術的な実装のニーズではなく、言語設計にあります。

以上がC で純粋仮想関数を宣言するために `= 0` が使用されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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