- Consider a corporate personnel database
- Need class Employee;
- Certain employees are ``empowered'' (have more
      responsibilities): need 
 class Empowered : public
      Employee;
- Among the empowered employees, some are managers: need
      class Manager : public Empowered;
- Manager contains public data and methods from       Empowered, which contains public data and methods from       Employee
  
| class Employee { public:
 Employee();
 
  Employee(); double getMonthlySalary(void);
 void getEmployeeType(void);
 };
 | 
 
 
  
| class Empowered : public Employee { public:
 Empowered();
 
  Empowered(); bool isOverworked(void);
 void getEmployeeType(void);
 };
 | 
 
     
 
 
  
| class Manager : public Empowered { public:
 Manager();
 
  Manager(); bool isIncompetent(void);
 void getEmployeeType(void);
 };
 | 
Leo Liberti
2008-01-12