TITLE: Pure virtual methods are not dominated

[ This example adapted from "C++ Gotchas", tutorial notes
  copyright by Tom Cargill, p. 74 ]

#include <iostream.h>


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 ]
