Demonstrate pointer to derived class.
#include <iostream> using namespace std; class BaseClass { int x; public: void setx(int i) { x = i; } int getx() { return x; } }; class DerivedClass : public BaseClass { int y; public: void sety(int i) { y = i; } int gety() { return y; } }; int main() { BaseClass *p; // pointer to BaseClass type BaseClass baseObject; // object of BaseClass DerivedClass derivedObject; // object of DerivedClass p = &baseObject; // use p to access BaseClass object p->setx(10); // access BaseClass object cout << "Base object x: " << p->getx() << '\n'; p = &derivedObject; // point to DerivedClass object p->setx(99); // access DerivedClass object derivedObject.sety(88); // can't use p to set y, so do it directly cout << "Derived object x: " << p->getx() << '\n'; cout << "Derived object y: " << derivedObject.gety() << '\n'; return 0; }