// B1_4.cpp #include using namespace std; /* #1 - not ambiguous class base { public: void mf() { cout << "\n base::mf()"; } }; class A:public virtual base { }; class B:public virtual base { }; class C : public A, public B { public: void mf() { cout << "\n C::mf()"; } }; */ // #2 - not ambiguous either class base { public: void mf() { cout << "\n base::mf()"; } }; class A:public virtual base { public: void mf() { cout << "\n A::mf()"; } }; class B:public virtual base { }; class C : public A, public B { public: void mf() { cout << "\n C::mf()"; } }; void main() { C c; c.mf(); c.A::mf(); c.B::mf(); cout << "\n\n"; }