// virt.cpp // virtual functions accessed from pointer #include class Base // base class { public: virtual void show() // virtual function { cout << "\nBase"; } }; class Derv1 : public Base // derived class 1 { public: void show() { cout << "\nDerv1"; } }; class Derv2 : public Base // derived class 2 { public: void show() { cout << "\nDerv2"; } }; void main() { Derv1 dv1; // object of derived class 1 Derv2 dv2; // object of derived class 2 Base* ptr; // pointer to base class ptr = &dv1; // put address of dv1 in pointer ptr->show(); // execute show() ptr = &dv2; // put address of dv2 in pointer ptr->show(); // execute show() }