A voir également:
- C'est quoi un heritage virtuel
- Metre virtuel - Guide
- Bureau virtuel windows 10 - Guide
- Pc virtuel - Guide
- Ami virtuel - Guide
- Clavier virtuel arabe - Télécharger - Divers Web & Internet
2 réponses
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.
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.
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.