#ifndef C_H #define C_H class A { public: int a, b, c; }; class C { public: int x, y, z; virtual void f () { } }; class D : virtual public C { public: int w; }; class E : virtual public C { public: int v; }; class Z : public D, public E { int vw; }; #endif // C_H