#include using namespace std ; class Person { public: string firstName ; string lastName ; virtual void getName() { cout << firstName << " " << lastName << endl ; } }; class Employee : public Person { public: string jobTitle ; virtual void getName() { cout << firstName << " " << lastName << " " << jobTitle << endl ; } }; class Manager : public Employee { public: //What if the method is missing //Climb up the hierarchy /* virtual void getName() { cout << firstName << " " << lastName << " " << jobTitle << " Manager" << endl ; } */ }; int main() { Person* p1 ; Employee* e1 ; Manager* m1 ; m1 = new Manager() ; m1->firstName = "Chuck" ; m1->lastName = "Wepner" ; m1->jobTitle = "Boxer" ; p1 = m1 ; p1->getName() ; //Make sure we delete the right type //or program will crash delete m1 ; return 0 ; }