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