// the following design is not done yet. Just an initial thought
class People {
protected:
string name;
unsigned int age;
string title;
public:
People();
virtual ~People();
};
class Manager : public People {
private:
vector<Employee*> emp;
Manager* mngr;
public:
void enhance_moral();
};
class Employee : public People {
private:
Manager* mngr;
public:
void work();
};
class Sys {
private:
vector<Manager*> managers;
vector<Employee*> employees;
public:
void fire_people(People& p);
void promote_employee(const Employee& e);
};