(C++)Que signifie virtual ici
2 réponses
-
ContributeurBonjour,
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.-
-
ContributeurPar 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 ^^). -
-
-
-
-
Merci beaucoup à vous deux :)