#include <iostream>
#include <string>
#include <vector>
using namespace std;
class Employee {
public:
void SetName(string employeeName) {
name = employeeName;
}
virtual void PrintInfo() {
cout << name << endl;
}
protected:
string name;
};
class Coach : public Employee {
public:
void SetSport(string setSport) {
sport = setSport;
}
void PrintInfo() {
cout << name << " coaches " << sport << endl;
}
private:
string sport;
};
class Author : public Employee {
public:
void SetGenre(string setGenre) {
genre = setGenre;
}
void PrintInfo() {
cout << name << " writes " << genre << endl;
}
private:
string genre;
};
int main() {
Employee* person1;
Coach* person2;
Author* person3;
vector<Employee*> personList;
unsigned int i;
person1 = new Employee();
person1->SetName("Joe");
person2 = new Coach();
person2->SetName("Mia");
person2->SetSport("hockey");
person3 = new Author();
person3->SetName("Jose");
person3->SetGenre("mysteries");
personList.push_back(person3);
personList.push_back(person1);
personList.push_back(person2);
for (i = 0; i < personList.size(); ++i) {
personList.at(i)->PrintInfo();
}
return 0;
}