Méthodes de gestion des variables membres de même nom en héritage
1. Lorsqu'une variable membre d'une sous-classe a le même nom qu'une variable membre d'une classe parent
2. la sous-classe hérite toujours d'un membre du même nom de la classe parent
3. Distinguer les membres du même nom dans la sous-classe via le discriminateur de portée : (utiliser les membres de la classe de base avec le même nom dans la classe dérivée. classe et utilisez explicitement le qualificatif de nom de classe)
4 , les membres portant le même nom sont stockés à différents endroits de la mémoire
2. Le mot-clé static dans les classes dérivées
héritage Que se passera-t-il s'il est combiné avec le mot-clé static ?
Connaissances théoriques
Ø Les membres statiques définis par la classe de base seront partagés par toutes les classes dérivées
Ø Selon les caractéristiques d'accès des membres statiques eux-mêmes et l'héritage méthode de la classe dérivée, dans Il existe différentes propriétés d'accès dans la hiérarchie des classes (se conformer au contrôle d'accès des classes dérivées)
Ø Pour accéder aux membres statiques d'une classe dérivée, utilisez le formulaire suivant pour indiquer explicitement :
Nom de la classe :: membre
ou accédez au nom de l'objet via l'objet Membres
Concept d'héritage multiple
Ø La relation d'héritage dans laquelle une classe a plusieurs classes de base directes est appelé héritage multiple
Ø Syntaxe de déclaration d'héritage multiple
nom de classe dérivée de classe : nom de classe de base de contrôle d'accès 1, nom de classe de base de contrôle d'accès 2, …, nom de classe de base de contrôle d'accès n
{
Déclaration de données membres et de fonctions membres
};
Ø La classe C peut hériter des membres de la classe A et de la classe B en même temps en fonction de l'accès contrôler, et ajouter
ses propres membres
Construction de classes dérivées et accès à l'héritage multiple
Ø Constructeurs de classes dérivées de plusieurs classes de base peut utiliser l'initialisation pour appeler le constructeur de la classe de base afin d'initialiser les données membres
Ø Exécution L'ordre est similaire au cas des constructeurs à héritage unique. L'ordre dans lequel plusieurs constructeurs de classes de base directes sont exécutés dépend de l'ordre dans lequel chaque classe de base héritée est spécifiée lors de la définition de la classe dérivée.
Ø Un objet de classe dérivé a plusieurs membres de classe de base directs ou indirects. Il n’y aura aucune ambiguïté lors de l’accès à des membres portant des noms différents. Si différentes classes de base ont des membres portant le même nom, ils doivent être identifiés lors de l'accès aux objets de classe dérivée.Si une classe dérivée dérive de plusieurs classes de base, et que ces classes de base ont un commun classe de base, lors de l'accès au nom déclaré dans la classe de base, une ambiguïté peut survenir
Analyse :
Résumé :
Ø Si une classe dérivée est dérivée de plusieurs classes de base et que ces classes de base ont une classe de base
commune, alors la classe de base Lors de l'accès au nom déclaré dans la classe,
une ambiguïté peut survenir
Ø S'il existe une classe de base commune sur plusieurs chemins d'héritage, alors quelque part dans le chemin d'héritage
Point de convergence, cette classe de base publique générera plusieurs sous-classes de base -objets dans l'objet de la classe dérivée
Ø Pour que cette classe de base publique ne génère qu'un seul sous-objet dans la classe dérivée, vous devez déclarer cette classe de base
comme héritage virtuel, faisant cette classe de base est une classe de base virtuelle.
Ø La déclaration d'héritage virtuel utilise le mot-clé virtual
3 Résumé de l'héritage
Ø L'héritage est une méthode importante pour réaliser la réutilisation de logiciels dans la programmation orientée objet. Les programmeurs peuvent définir de nouvelles classes dérivées basées sur les classes de base existantes.
Ø Une classe dérivée avec un héritage unique n'a qu'une seule classe de base. Une classe dérivée avec héritage multiple possède plusieurs classes de base.
Ø L'accès des classes dérivées aux membres de la classe de base est déterminé par la méthode d'héritage et les propriétés des membres.
Ø Lors de la création d'un objet de classe dérivée, appelez d'abord le constructeur de la classe de base pour initialiser les membres de la classe de base dans la classe dérivée. L’ordre dans lequel les destructeurs sont appelés est l’inverse de l’ordre dans lequel les constructeurs sont appelés.
Ø C fournit un mécanisme d'héritage virtuel pour éviter toute ambiguïté dans l'accès des membres dans les relations d'héritage de classe.
Ø L'héritage multiple fournit de puissantes fonctions de réutilisation de logiciels, mais augmente également la complexité du programme.
Ce qui précède est le neuvième résumé des points de révision c - héritage deux. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (m.sbmmt.com) !