Le polymorphisme permet aux classes dérivées d'avoir des comportements différents tout en partageant la même interface. Les étapes pour y parvenir incluent : la création de classes de base, de classes dérivées, de fonctions virtuelles et l'utilisation de pointeurs de classe de base. L'exemple de code montre comment utiliser la hiérarchie des classes de forme (Shape). , Rectangle, Cercle) pour réaliser le polymorphisme et calculer l'aire totale de différentes formes.
Conception de classes pour implémenter le polymorphisme en C++
Qu'est-ce que le polymorphisme ?
Le polymorphisme permet aux classes dérivées et aux classes de base d'avoir des comportements différents tout en partageant la même interface. Il fournit un moyen élégant de créer des collections d’objets ayant un comportement similaire mais des implémentations différentes.
Étapes pour implémenter le polymorphisme :
Cas pratique :
Considérons une hiérarchie de classes de formes :
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_; };
Usage :
// 创建不同形状的集合 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;
Sortie :
Total area: 37.68
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!