-
Notifications
You must be signed in to change notification settings - Fork 0
/
Politician.h
60 lines (43 loc) 路 1.21 KB
/
Politician.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
//
// Created by Samuel Benichou on 2020-01-04.
//
#pragma once
#ifndef HW5_POLITICIAN_H
#define HW5_POLITICIAN_H
#include <iostream>
#include <string>
using namespace std;
class Party;
class Politician {
protected:
string firstName;
string lastName;
string id;
int power;
Party *party;
Politician *chairman;
public:
//^^^^^^^^^^ Constructors and Destructor ^^^^^^^^^^//
Politician(string,string,string,int);
virtual ~Politician();
//^^^^^^^^^^^^^^Getters and Setters^^^^^^^^^^^^^^//
const string &getFirstName() const;
const string &getLastName() const;
const string &getId() const;
void setParty(Party *other);
void setChaiman(Politician*);
Party* getParty();
Politician* getChairman();
string getChairmanName();
//^^^^^^^^^^^^^^Pure Virtual Functions^^^^^^^^^^^^^^//
virtual void print() = 0;
virtual bool isLeader()const = 0;
virtual bool isSocial()const = 0;
virtual bool isRepublic()const = 0;
virtual bool isDemoc()const = 0;
virtual int getPower() = 0;
virtual void handleParty(Party* p) = 0;
virtual int getLeaderPower() = 0;
virtual void handleEmptyParty(Party* p) = 0;
};
#endif //HW5_POLITICIAN_H