class Base { public: virtual void fn1() {}; virtual void fn2() {}; }; class Dr1: public Base { public: virtual void fn1() {}; }; int main(int argc, char *argv[]) { Dr1 d1; d1.fn1(); Base *ptr = &d1; ptr->fn1(); return 0; }