Règles d'héritage des fonctions membres C++ : Héritage public : si une classe dérivée hérite publiquement des fonctions membres de la classe de base, alors les fonctions membres de la classe dérivée sont également publiques. Héritage protégé : si une classe dérivée protège et hérite des fonctions membres de la classe de base, alors les fonctions membres de la classe dérivée sont protégées. Héritage privé : la classe dérivée hérite de manière privée des fonctions membres de la classe de base. Les fonctions membres de la classe dérivée sont privées et ne sont pas directement accessibles par la classe dérivée elle-même.
Règles d'héritage pour les fonctions membres C++
Dans la programmation orientée objet C++, une classe peut hériter des données membres et des fonctions membres d'une classe de base par héritage. Pour l'héritage des fonctions membres, suivez les règles suivantes :
Exemple pratique :
Considérons l'exemple suivant :
class Shape { public: virtual double getArea(); // 抽象函数 }; class Rectangle : public Shape { public: Rectangle(double length, double width); double getArea() override; // 重写父类的 getArea 函数 private: double length; double width; }; class Square : protected Shape { public: Square(double side); double getArea() override; private: double side; }; class Circle : private Shape { public: Circle(double radius); double getArea() override; private: double radius; };
Dans cet exemple :
Rectangle
hérite publiquement de la classe Shape
, donc La fonction getArea est également publique dans la classe Rectangle
. Rectangle
类公有继承 Shape
类,因此 getArea
函数在 Rectangle
类中也是公有的。Square
类保护继承 Shape
类,因此 getArea
函数在 Square
类中也是保护的。Circle
类私有继承 Shape
类,因此 getArea
函数在 Circle
Square
protected hérite de la classe Shape
, donc la fonction getArea
est également protégée dans la classe Square
. La classe Circle
hérite en privé de la classe Shape
, donc la fonction getArea
est privée dans la classe Circle
.
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!