Ex8.1
This commit is contained in:
parent
d9cbe495da
commit
579d3355cc
2 changed files with 75 additions and 0 deletions
43
ex8.1/Manager.hh
Normal file
43
ex8.1/Manager.hh
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
#ifndef MANAGER_HH
|
||||||
|
#define MANAGER_HH
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include <iostream>
|
||||||
|
#include <set>
|
||||||
|
#include "Employee.hh"
|
||||||
|
|
||||||
|
using namespace std ;
|
||||||
|
|
||||||
|
class Manager : public Employee {
|
||||||
|
|
||||||
|
public:
|
||||||
|
Manager(const char* name, double salary) : Employee(name, salary) {}
|
||||||
|
|
||||||
|
void businessCard( ostream& os = cout) const {
|
||||||
|
Employee::businessCard( os );
|
||||||
|
os << " +----------+ " << endl
|
||||||
|
<< " Subordinates " << endl
|
||||||
|
<< " +----------+ " << endl;
|
||||||
|
|
||||||
|
for ( auto iter = _subordinates.begin() ; iter != _subordinates.end(); iter++ ) {
|
||||||
|
os << " - " << (*iter)->name() << endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
os << " +----------+ " << endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
void addSubordinate ( Employee& empl ) {
|
||||||
|
_subordinates.insert( &empl );
|
||||||
|
}
|
||||||
|
const set<Employee*>& listOfSubordinates() const {
|
||||||
|
return _subordinates;
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
string _name ;
|
||||||
|
double _salary ;
|
||||||
|
set<Employee*> _subordinates ;// subordinates is an unordered collection so set is usefull enough
|
||||||
|
|
||||||
|
} ;
|
||||||
|
|
||||||
|
#endif
|
32
ex8.1/main.cpp
Normal file
32
ex8.1/main.cpp
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
#include <iostream>
|
||||||
|
#include "Employee.hh"
|
||||||
|
#include "Manager.hh"
|
||||||
|
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
Employee wouter("Wouter", 0);
|
||||||
|
Employee ivo("Ivo", 0);
|
||||||
|
Manager stan("Stan", 0);
|
||||||
|
Manager jo("Jo", 0);
|
||||||
|
Manager frank("Frank", 0);
|
||||||
|
|
||||||
|
|
||||||
|
stan.addSubordinate(wouter);
|
||||||
|
stan.addSubordinate(ivo);
|
||||||
|
|
||||||
|
frank.addSubordinate(stan); // This does not give a problem because stan is also of type Employee
|
||||||
|
frank.addSubordinate(jo);
|
||||||
|
|
||||||
|
// Print the Business Cards
|
||||||
|
frank.businessCard();
|
||||||
|
std::cout << std::endl;
|
||||||
|
jo.businessCard();
|
||||||
|
std::cout << std::endl;
|
||||||
|
stan.businessCard();
|
||||||
|
std::cout << std::endl;
|
||||||
|
wouter.businessCard();
|
||||||
|
std::cout << std::endl;
|
||||||
|
ivo.businessCard();
|
||||||
|
std::cout << std::endl;
|
||||||
|
|
||||||
|
}
|
Reference in a new issue