struct A {int a;};
struct B: public A {int b;};
struct C: public A {int c;};
struct D: public B, public C {int d;};


struct A {int a;};
struct B: public virtual A {int b;};
struct C: public virtual A {int c;};
struct D: public B, public C {int d;};
// Zde již bez "virtual"
