#include class A{ public: virtual void v(){cout << "A::v\n";} void n(){cout << "A::n\n";} }; class B: public A{ public: virtual void v(){cout << "B::v\n";} void n(){cout << "B::n\n";} }; class C: public A{ public: virtual void v(){cout << "C::v\n";} void n(){cout << "C::n\n";} }; int main() { A a; B b; C c; a.v(); a.n(); b.v(); b.n(); c.v(); c.v(); A *apa=&a, *apb=&b, *apc=&c; apa->v(); apa->n(); apb->v(); apb->n(); apc->v(); apc->n(); return 0; }