#include using namespace std; class A { public: void do_it() { cout << "I'm an A" << endl; } }; class B : public A { public: void do_it() { cout << "I'm an B" << endl; } }; class C { public: virtual void do_it() { cout << "I'm an C" << endl; } }; class D : public C { public: virtual void do_it() { cout << "I'm an D" << endl; } }; int main(void) { A a; B b; A* obj; obj = &a; obj->do_it(); obj = &b; obj->do_it(); C c; D d; C* vobj; vobj = &c; vobj->do_it(); vobj = &d; vobj->do_it(); return 0; }