#include class A { public: void other () { printf("is an empty func in A\n"); }; virtual void other (class A *a) { printf("In A\n"); } }; class B: public A { public: void other (class B *b) { printf("In B\n"); } }; int main(void) { A a; B b; A *aPtr = &a; B *bPtr = &b; aPtr = bPtr; aPtr->other(bPtr); // bPtr->other(); }