#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) { Base b; Der1 d1; Base* bptr = &d1; bptr->F1(); d1.F1(); }