![]() ![]() ![]() |
|
L a n g a g e C++
L ' h é r i t a g e m u l t i p l e
Introduction
![]() m1 : attribut de la classe A m2 : attribut de la classe B Par le mécanisme d'héritage, la classe C aura accès aux attributs m1 et m2 des classes A et B. De façon similaire à l'héritage simple, la déclaration d'une classe C héritant d'une classe A et d'une classe B s'écrira :
Constructeurs dans les classe dérivées
Soit le fichier d'en-tête point.h :
et le fichier d'en-tête forme.h :
![]() On écrira la spécification de la classe pointforme dans le fichier d'en-tête pointforme.h comme ceci :
Et enfin son implémentation dans le fichier source pointforme.cpp :
Un problème lié à l'héritage multiple
![]() En instanciant la classe D, l'objet va se retrouver, par le mécanisme d'héritage, avec une double représentation de la classe A par le biais des classes B et C. On peut schématiser le résultat obtenu par le graphe d'héritage suivant : ![]() Les classes virtuelles
La solution pour obtenir une seule copie de la classe A en instanciant D est d'utiliser la notion de classe virtuelle :
Ce qui correspond à la représentation suivante : ![]()
|
![]() |
![]() |
![]() |
© 2000-2025 Exood4 Studio. Tous droits réservés. |