Call virtual function through object pointer
#include <iostream> using namespace std; class base { public: virtual void vfunc(void) { cout << "This is base's vfunc()." << endl; } }; class derived1 : public base { public: void vfunc(void) { cout << "This is derived1's vfunc()." << endl; } }; class derived2 : public derived1 { }; int main(void) { base *p, b; derived1 d1; derived2 d2; p = &b; p->vfunc(); p = &d1; p->vfunc(); p = &d2; p->vfunc(); }