#include using std::cout; using std::endl; class Base { public: virtual void f1() { cout << "Base::f1()" << endl; } virtual void f2() { cout << "Base::f2()" << endl; } }; class Der1: public Base { public: virtual void f1() { cout << "Der1::f1()" << endl; } }; int main(int argc, char **argv) { Base b; Der1 d1; d1.f1(); Base *bptr = &d1; bptr->f1(); return 0; }