純粋仮想関数は、C のオブジェクト指向プログラミング モデルの重要な部分です。これらにより、クラスは派生クラスによってオーバーライドされる必要があるメソッドを定義できるようになり、実質的に派生クラスにそれらのメソッドの実装を提供するよう強制できます。
純粋仮想関数を宣言する場合、0 で初期化するのが一般的です。これには、このため、関数の仮想テーブル エントリを NULL に設定するにはこの初期化が必要であると多くの人が信じています。しかし、この理解は間違っています。
純粋仮想関数宣言の最後の =0 は初期化ではありません。代わりに、これはこの関数が純粋な仮想関数であることを示す構文です。これは、Bjarne Stroustrup 氏の著書『The Design & Evolution of C』で説明されているように、言語の設計プロセスにおける制限の結果です。
純粋仮想関数の実装には、必ずしも仮想テーブル エントリを次のように設定する必要はありません。 NULL。実際、Stroustrup は、このアプローチは純粋仮想関数を実装する最良の方法ではないと明示しています。
では、なぜ純粋仮想関数には 0 が使用されるのでしょうか?答えは、技術的な実装のニーズではなく、言語設計にあります。
以上がC で純粋仮想関数を宣言するために `= 0` が使用されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。