Comment initialiser les variables membres de la classe de base dans le constructeur de classe dérivée
Dans la programmation orientée objet, il est courant d'avoir des classes dérivées qui héritent de classes de base. Lors de la création d'un constructeur dans une classe dérivée, il est essentiel d'initialiser correctement les variables membres héritées de la classe de base.
Considérez le code suivant :
class A { public: int a, b; }; class B : public A { B() : A(), a(0), b(0) { } };
Dans cet exemple, la classe dérivée B tente d'initialiser les variables membres a et b dans son propre constructeur. Il s’agit cependant d’une approche incorrecte. La bonne façon d'initialiser les variables membres de la classe de base dans une classe dérivée est d'utiliser le constructeur de la classe de base :
class A { protected: A(int a, int b) : a(a), b(b) {} // Accessible to derived classes private: int a, b; // Keep these variables private in A }; class B : public A { public: B() : A(0, 0) // Calls A's constructor, initializing a and b in A to 0. { } };
En rendant le constructeur de la classe de base accessible (protégé ou public) et en l'appelant dans le constructeur de la classe dérivée , nous initialisons correctement les variables membres héritées. Cette approche garantit que la classe de base est correctement initialisée avant l'exécution du code de la classe dérivée.
Notez qu'il n'est pas recommandé de rendre publiques les variables membres de la classe de base dans la classe dérivée (comme dans l'exemple incorrect) car cela brise le principe d'encapsulation, permettant un accès externe à des données protégées ou privées.
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!