Przykład
cout <<"tworze obiekt A "<< na << endl;}
cout <<"tworze obiekt B "<< xb << endl;}
C(int nn=2) : A (2*nn+1) {
cout <<"tworze obiekt C "<< nc << endl;}
class D : public B, public C{
D(int n1, int n2, float x) : C(n1), B(x){
cout <<"tworze obiekt D "<< nd<< endl;}
void main(){ D d(10, 20, 5.0);}
cout <<"tworze obiekt A "<< na << endl;}
class B : public virtual A{
cout <<"tworze obiekt B "<< xb << endl;}
class C : public virtual A{
C(int nn=2) : A (2*nn+1) {
cout <<"tworze obiekt C "<< nc << endl;}
class D : public B, public C{
D(int n1, int n2, float x) : C(n1), B(x), A(2*n1+1){
cout <<"tworze obiekt D "<< nd<< endl;}
void main(){ D d(10, 20, 5.0);}
tworzone są dwa obiekty A
tworzony jest jeden obiekt A