TITLE: Pure virtual methods are not dominated [ This example adapted from "C++ Gotchas", tutorial notes copyright by Tom Cargill, p. 74 ] #include class Top { public: virtual void v () = 0; }; class Left : public virtual Top { public: }; class Right : public virtual Top { public: void v() { cout << "Right::v" << endl; } }; class Bottom : public Left, public Right { }; int main () { Bottom b; // error -> Bottom is abstract return 0; } [ Note that Right::v() did NOT dominate the pure virtual Top::v() in the class Bottom. For more discussion, see the ARM p. 204. -adc ]