仮想関数と純粋仮想関数
オブジェクト指向プログラミングでは、仮想関数と純粋仮想関数はポリモーフィズムを理解するために不可欠な概念です。
バーチャルとはFunction?
仮想関数は、動的ディスパッチを可能にする基本クラスの継承可能およびオーバーライド可能な関数です。仮想関数がオブジェクトで呼び出されるとき、ランタイム システムは、オブジェクトの型に基づいて実行する実際の関数実装を決定します。
例:
class Base { public: virtual void foo() { std::cout << "Base::foo()" << std::endl; } }; class Derived : public Base { public: void foo() override { std::cout << "Derived::foo()" << std::endl; } };
Inこの例では、Base クラスと派生クラスの両方が foo() 関数を実装しています。 Derived オブジェクトで foo() が呼び出されると、オーバーライドされたバージョンが実行され、「Derived::foo()」が出力されます。
純粋仮想関数とは何ですか?
純粋仮想関数は抽象関数とも呼ばれ、基本クラスで定義されていない仮想関数です。これはプレースホルダーとして機能し、派生クラスで実装する必要があります。
例:
class Base { public: virtual void foo() = 0; // pure virtual function };
この例では、foo() を Base 内の純粋な仮想関数として宣言します。クラス。派生クラスは、定義を提供するためにこの関数を実装する必要があります。そうしないと、派生クラスは抽象になり、インスタンス化できなくなります。
仮想関数と純粋仮想関数の違い
以上がC の仮想関数と純粋仮想関数の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。