L'héritage C++ est utilisé pour créer des hiérarchies de classes, où de nouvelles classes (classes dérivées) héritent des fonctionnalités d'une classe de base et étendent ses fonctionnalités. Les classes dérivées utilisent des spécificateurs d'accès pour déclarer les relations d'héritage et contrôler l'accès aux membres de la classe de base. public accorde l'accès aux classes dérivées et au code externe, protected accorde l'accès aux classes dérivées et à leurs classes dérivées, et privé accorde l'accès aux classes dérivées uniquement. En créant une classe dérivée et en remplaçant la fonction virtuelle pure de la classe de base, la classe dérivée peut implémenter des fonctions personnalisées, telles que l'implémentation de Rectangle et Cercle dans l'exemple pour calculer l'aire d'une forme spécifique.
L'héritage est un concept de base en programmation orientée objet qui permet la création de nouvelles classes à partir de classes existantes. En C++, l'héritage peut être utilisé pour créer une hiérarchie de classes dans laquelle chaque classe hérite de sa classe de base et étend éventuellement ses fonctionnalités.
Pour hériter d'une classe de base, la nouvelle classe (classe dérivée) doit être déclarée en utilisant le public
, protected
ou private code> relation d'héritage du spécificateur d'accès. La syntaxe est la suivante : <code>public
、protected
或 private
访问说明符声明继承关系。语法如下:
class 派生类 : 访问说明符 基类 { // 派生类成员 };
访问说明符控制派生类对基类成员的访问权限:
public
:允许派生类和外部代码访问基类成员。protected
:允许派生类及其派生类访问基类成员。private
:只允许派生类访问基类成员。考虑一个描述几何形状的类层次结构:
class Shape { public: virtual double getArea() const = 0; // 纯虚函数 }; class Rectangle : public Shape { public: Rectangle(double width, double height) : _width(width), _height(height) {} double getArea() const override { return _width * _height; } private: double _width, _height; }; class Circle : public Shape { public: Circle(double radius) : _radius(radius) {} double getArea() const override { return 3.14159 * _radius * _radius; } private: double _radius; };
在此示例中,Shape
是形状类的基类,它包含一个纯虚函数 getArea()
,这意味着必须在所有派生类中实现它。
Rectangle
是一个从 Shape
继承的矩形类,它覆盖了 getArea()
函数以计算矩形的面积。Circle
是另一个从 Shape
继承的圆类,它也覆盖了 getArea()
函数以计算圆的面积。要使用这个类层次结构,我们可以创建 Rectangle
和 Circle
对象并调用 getArea()
int main() { Rectangle rectangle(2.0, 3.0); cout << "Rectangle area: " << rectangle.getArea() << endl; Circle circle(5.0); cout << "Circle area: " << circle.getArea() << endl; return 0; }
public</code > : classes dérivées autorisées et membres de la classe de base d'accès au code externe. </li><li><code>protected
: permet aux classes dérivées et à leurs classes dérivées d'accéder aux membres de la classe de base. privé
: seules les classes dérivées sont autorisées à accéder aux membres de la classe de base. Rectangle area: 6 Circle area: 78.5398163397
Shape
est la classe de base des classes de formes, elle contient une fonction virtuelle pure getArea()
, ce qui signifie qu'elle doit être implémentée dans toutes les classes dérivées. 🎜Rectangle
est une classe rectangle héritée de Shape
, qui remplace la fonction getArea()
pour calculer l'aire de un rectangle. Circle
est une autre classe de cercle héritée de Shape
, qui remplace également la fonction getArea()
pour calculer la surface des cercles. Rectangle
et Circle
et appeler la fonction getArea()
:🎜rrreee🎜Sortie :🎜rrreeeCe 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!