//: C09:Dominance2.cpp // From "Thinking in C++, Volume 2", by Bruce Eckel & Chuck Allison. // (c) 1995-2004 MindView, Inc. All Rights Reserved. // See source code use permissions stated in the file 'License.txt', // distributed with the code package available at www.MindView.net. #include using namespace std; class A { public: virtual ~A() {} virtual void f() { cout << "A::f\n"; } }; class B : virtual public A { public: void f() { cout << "B::f\n"; } }; class C : public B {}; class D : public C, virtual public A {}; int main() { B* p = new D; p->f(); // Calls B::f() delete p; } ///:~