previous | start | next

1.2.1 Example 1: Employee, Manager (getBonus, getLevel)

class Employee
{
private:
  string name;
  double salary;
public:
  Employee(const string& nm, double sal) 
        : name(nm), salary(sal) {}
  string getName() const { return name; }
  double getSalary() const { return salary; }
  virtual double getBonus() const;
};

A Manager is particular "kind of" Employee.

Define Manager class as a derived class from the base class Employee:

class Manager : public Employee
{
private:
  int level; // Something special for Managers, not regular Employees
public:
  Manager(const string& nm, double sal, int lev)
        : Employee(nm, sal), level(lev) 
  {}

  virtual double getBonus() const;
  int getLevel() const { return level; }
  void setLevel(int lev) { level = lev; }

};


previous | start | next