(C++)Que signifie virtual ici
javast
Messages postés
88
Statut
Membre
-
Pacorabanix Messages postés 4122 Date d'inscription Statut Membre Dernière intervention -
Pacorabanix Messages postés 4122 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
struct A:public virtual B;
Que signifie le virtual avant B.
Merci
struct A:public virtual B;
Que signifie le virtual avant B.
Merci
2 réponses
-
Bonjour,
Le virtual dans ce cas permet de faire de l'héritage virtuel. Cela évitera de dédoubler les membres de cette structure lors d'un futur héritage. On parlera d'héritage en diamant.-
-
Par exemple si tu fais :
struct B { int i;};
struct A : public B;
struct C : public B;
Puis : struct Union : public A, public C;
Cela ne devrait pas passer la compilation puisque cela dupliquera la variable i de la structure B. Dis autrement : Union.i; le compilateur ne sera pas s'il doit hériter de A ou de C.
Tandis qu'en mettant : struct A : public virtual B; et struct C : public virtual B; cela ne créera pas le doublon. Et la compilation passera.
J'espère avoir été plus clair (et surtout de pas avoir dit de bêtises ^^). -
-
-
-
-