Création
d'entreprise
Posez votre question Signaler

C'est quoi un heritage virtuel

quake - Dernière réponse le 28 avril 2009 à 13:38
Bonjour,
je suis débutant en C++, et donc m'a question pourrait paraître très débile .... :-)
donc VOILA :
Qu'est ce que c'est qu'un héritage virtuel (voici un petit exemple)
class AAAAA: virtual public BBBBBB
{
********
}
MERCI BCPP
Lire la suite 

C'est quoi un heritage virtuel »

Suggestions
2 réponses
Réponse
+0
moins plus
tiens cela va repondre a tes question : http://www.commentcamarche.net/contents/java/javaherit.php3
Ajouter un commentaire
Réponse
+0
moins plus
Non la question n'est pas débile, mais ce n'est pas un question de débutant !
La réponse est simple: dans l'exemple donné, ça ne change strictement rien; oh, je t'entends déjà poser la question: mais pourquoi mettre 'virtual' ? Ce ne peut être utilisé que dans le cas d'héritage multiple; je vais essayer d'expliquer sans rentrer dans le détail.
class A { public: int a; };
class B : virtual public A { public: int b; };
class C : virtual public A { public: int c; };
class M : public B, public C { public; int m; };

S'il n'y avait pas 'virtual', la classe M recevrait deux copies de 'int a' (l'une par B et l'autre par C).
Dans la cas présent, 'virtual' impose une unicité de 'int a'; donc &M.B::a, &M.C::a et &M.a pointent vers le même objet.
Voilà, je ne m'étendrais pas plus; c'est rarement utilisé.
Bon courage.
Ajouter un commentaire
Ce document intitulé « c'est quoi un heritage virtuel » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?