ポリモーフィズムにより、同じインターフェイスを共有しながら派生クラスが異なる動作を行うことができます。これを実現する手順には、基本クラス、派生クラス、仮想関数の作成、および基本クラス ポインターの使用が含まれます。サンプル コードでは、シェイプ クラス階層 (Shape. 、長方形、円)を使用して多態性を実現し、さまざまな形状の合計面積を計算します。
C++でポリモーフィズムを実装するためのクラス設計
ポリモーフィズムとは何ですか?
ポリモーフィズムにより、同じインターフェイスを共有しながら、派生クラスと基本クラスが異なる動作を持つことができます。これは、動作は似ているが実装が異なるオブジェクトのコレクションを作成するエレガントな方法を提供します。ポリモーフィズムを実装する手順:
実際のケース:
形状クラスの階層を考える:class Shape { public: virtual double area() = 0; // 纯虚函数(必须在派生类中重新定义) }; class Rectangle : public Shape { public: Rectangle(double width, double height) : width_(width), height_(height) {} double area() override { return width_ * height_; } private: double width_; double height_; }; class Circle : public Shape { public: Circle(double radius) : radius_(radius) {} double area() override { return 3.14 * radius_ * radius_; } private: double radius_; };
使用法:
// 创建不同形状的集合 vector<Shape*> shapes; shapes.push_back(new Rectangle(2.0, 3.0)); shapes.push_back(new Circle(4.0)); // 使用基类指针计算总面积 double totalArea = 0.0; for (Shape* shape : shapes) { totalArea += shape->area(); // 使用多态性动态绑定函数调用 } // 输出总面积 cout << "Total area: " << totalArea << endl;
出力:
Total area: 37.68
以上がC++ クラス設計でポリモーフィズムを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。