Les classes virtuelles

Notre schéma illustre quatre classes qui sont A, B, C et D.
B et C héritent de A. D hérite de B et de C.
Le code C++ sera de cette forme :

Le fait que D hérite de B et de C et que B et C héritent de A, donc nous pouvons en déduire que D hérite deux fois de A. Cela dit clairement que les membres (méthodes ou attributs) apparaissent deux fois dans D. Quant aux méthodes, cela ne pose pas problème car en réalité elles ne sont pas dupliquées. Mais les attributs restent dupliqués. Dans ce cas, si nous voulons que D contienne deux fois les données de A, eh bien ça s’arrête ici. Sinon si nous ne voulons avoir qu’une seule copie de A dans D, nous serons obligés de déclarer la classe de base commune étant virtuelle.
Dans ce cas, le code C++ sera en quelque sorte ainsi :



Une question? Cliquez ici pour la poser.

Retour sur le portail du langage C/C++