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 :