#include using namespace std; class C1 { public: void met(){ cout << "C1!" << endl; } }; class C2 : public C1{ public: virtual void met(){ cout << "C2!" << endl; } }; class C3 : public C1 { public: void met(){ cout << "C3!" << endl; } }; class C4 : public C2, public C3 { public: void met(){ cout << "C4!" << endl; } }; int main(){ C1 *c1 = (C2 *)new C4(); C2 *c2 = (C2 *)c1; C3 *c3 = (C3 *)c1; C4 *c4 = (C4 *)c2; c1->met(); c2->met(); c3->met(); c4->met(); }