Maison >développement back-end >C++ >Explication détaillée de l'héritage des fonctions C++ : Comment définir et utiliser des classes de base abstraites ?
L'héritage de fonctions permet aux classes dérivées de réutiliser les définitions de fonctions de la classe de base, ce qui se fait via les étapes suivantes : Définir une classe de base abstraite, comprenant des fonctions virtuelles pures. Utilisez le mot-clé override dans la classe dérivée pour hériter et implémenter les fonctions de la classe de base. Cas pratique : Créez une classe de base abstraite Shape et dérivez les classes Circle et Rectangle pour calculer les aires de différentes formes.
Explication détaillée de l'héritage de fonctions C++ : définition et utilisation de classes de base abstraites
Qu'est-ce que l'héritage de fonctions ?
L'héritage de fonctions est une fonctionnalité C++ qui permet aux classes dérivées d'hériter des définitions de fonctions d'une classe de base, réutilisant ainsi les fonctions de la classe de base dans les sous-classes.
Définir une classe de base abstraite
Une classe de base abstraite est une classe de base qui n'est pas destinée à être instanciée, elle sert uniquement de classe de base pour d'autres classes. Il contient des fonctions virtuelles pures (c'est-à-dire des fonctions sans corps de fonction) qui doivent être remplacées dans les classes dérivées. Pour déclarer une classe de base abstraite, vous pouvez utiliser virtuel
et = 0
, par exemple : virtual
和 = 0
,例如:
class Shape { public: virtual double area() const = 0; };
派生类中的函数继承
派生类可以继承抽象基类的函数定义,方法是使用 override
class Circle : public Shape { public: override double area() const { return M_PI * radius * radius; } private: double radius; };
Héritage de fonctions dans les classes dérivées
Les classes dérivées peuvent hériter de la base abstraite définition de la fonction des classes en utilisant le mot-cléoverride
et en fournissant une implémentation de la fonction. Par exemple : #include <iostream> #include <cmath> using namespace std; class Shape { public: virtual double area() const = 0; }; class Circle : public Shape { public: Circle(double radius) : radius(radius) {} override double area() const { return M_PI * radius * radius; } private: double radius; }; class Rectangle : public Shape { public: Rectangle(double width, double height) : width(width), height(height) {} override double area() const { return width * height; } private: double width; double height; }; int main() { Circle circle(5); cout << "Circle area: " << circle.area() << endl; Rectangle rectangle(3, 4); cout << "Rectangle area: " << rectangle.area() << endl; return 0; }
Cas pratique : Calcul de l'aire de forme
Prenons le calcul de l'aire de forme comme exemple pour une démonstration pratique. Nous créons une classe de base abstraite Shape et créons des classes dérivées Circle et Rectangle pour calculer l'aire des cercles et des rectangles : 🎜Circle area: 78.5398 Rectangle area: 12🎜🎜Exécuter la sortie : 🎜🎜rrreee
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!