仮想関数は、派生クラスがその基本クラスのメンバー関数をオーバーライドできるようにするポリモーフィズム メカニズムです。 宣言: 関数名の前にキーワード virtual を追加します。呼び出し: 基本クラスのポインターまたは参照を使用して、コンパイラーは派生クラスの適切な実装に動的にバインドします。実際のケース: 基本クラス Shape とその派生クラス Rectangle および Circle を定義することにより、ポリモーフィズムにおける仮想関数の適用を実証し、面積を計算し、形状を描画します。
#C
Virtual 関数は、派生クラスがその基本クラス Member のプロパティをオーバーライドできるようにするポリモーフィズム メカニズムです。機能。これにより、プログラマは基本クラスで共通の動作を定義しながら、派生クラスがその動作のインスタンス固有の実装を提供できるようになります。仮想関数の宣言
仮想関数を宣言するには、関数名の先頭にキーワードvirtual を置きます。例:
class Base { public: virtual void print() const; };
仮想関数の呼び出し
仮想関数を呼び出し、基本クラスのポインターまたは参照を使用します。コンパイラは、派生クラスの適切な実装に動的にバインドします。例:void doSomething(Base* base) { base->print(); }
実用的なケース
仮想関数の使用例を次に示します:#include <iostream> class Shape { public: virtual double area() const = 0; virtual void draw() const = 0; }; class Rectangle : public Shape { public: Rectangle(double width, double height) : width_(width), height_(height) {} double area() const override { return width_ * height_; } void draw() const override { std::cout << "Drawing rectangle" << std::endl; } private: double width_; double height_; }; class Circle : public Shape { public: Circle(double radius) : radius_(radius) {} double area() const override { return 3.14 * radius_ * radius_; } void draw() const override { std::cout << "Drawing circle" << std::endl; } private: double radius_; }; int main() { Shape* rectangle = new Rectangle(5, 10); Shape* circle = new Circle(5); std::cout << rectangle->area() << std::endl; // Output: 50 std::cout << circle->area() << std::endl; // Output: 78.5 rectangle->draw(); // Output: Drawing rectangle circle->draw(); // Output: Drawing circle return 0; }
以上がC++ で仮想関数を宣言して呼び出すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。