Heim > Artikel > Backend-Entwicklung > Wie implementiert man Polymorphismus im C++-Klassendesign?
Polymorphismus ermöglicht abgeleiteten Klassen unterschiedliche Verhaltensweisen bei gemeinsamer Nutzung derselben Schnittstelle: Erstellen von Basisklassen, abgeleiteten Klassen, virtuellen Funktionen und Verwenden von Basisklassenzeigern. Der Beispielcode zeigt, wie die Shape-Klassenhierarchie verwendet wird , Rechteck, Kreis), um Polymorphismus zu erreichen und die Gesamtfläche verschiedener Formen zu berechnen.
Klassendesign zur Implementierung von Polymorphismus in C++
Was ist Polymorphismus?
Polymorphismus ermöglicht es abgeleiteten Klassen und Basisklassen, unterschiedliche Verhaltensweisen zu haben, während sie dieselbe Schnittstelle teilen. Es bietet eine elegante Möglichkeit, Sammlungen von Objekten mit ähnlichem Verhalten, aber unterschiedlichen Implementierungen zu erstellen.
Schritte zum Implementieren von Polymorphismus:
Praktischer Fall:
Betrachten Sie eine Hierarchie von Formklassen:
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_; };
Verwendung:
// 创建不同形状的集合 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;
Ausgabe:
Total area: 37.68
Das obige ist der detaillierte Inhalt vonWie implementiert man Polymorphismus im C++-Klassendesign?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!