class Base { public: virtual void fn1() {}; virtual void fn2() {}; }; class Dr1: public Base { public: virtual void fn1() {}; }; main() { Dr1 d1; d1.fn1(); Base *ptr = &d1; ptr->fn1(); }