-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathChatClient.cpp
More file actions
115 lines (102 loc) · 2.07 KB
/
ChatClient.cpp
File metadata and controls
115 lines (102 loc) · 2.07 KB
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#include "ChatClient.h"
ChatClient::ChatClient()
{
//name = nullptr;
foundationyear = NULL;
usercounter = NULL;
}
ChatClient::ChatClient(string _name, int _foundationyear, ChatUser *_userbase[UsersCountSize], int _usercounter)
{
name = _name;
foundationyear = _foundationyear;
usercounter = _usercounter;
//userbase = new ChatUser[usercounter];
for (auto i = 0; i < usercounter; i++)
{
userbase[i] = _userbase[i];
}
}
ostream&operator<<(ostream& os, const ChatClient& ob)
{
os << "ChatClient name: " << ob.name;
os << "\nChatClient Foundation Year: " << ob.foundationyear;
os << "\n ============================== \n User's list: \n";
for (auto i = 0; i < ob.usercounter; i++)
{
ob.userbase[i]->Show();
}
os << " ============================== \n";
return os;
}
ChatUser* ChatClient::operator[](const int &number)
{
return userbase[number];
}
istream&operator>>(istream& os, ChatClient& ob)
{
cout << "Input name: ";
os >> ob.name;
cout << "Input Foundation Year: ";
os >> ob.foundationyear;
return os;
}
void ChatClient::setName(string _name)
{
name = _name;
}
void ChatClient::setFoundationYear(int _foundationyear)
{
foundationyear = _foundationyear;
}
string ChatClient::getName()const
{
return name;
}
int ChatClient::getFoundationYear()const
{
return foundationyear;
}
int ChatClient::getUserCounter() const
{
return usercounter;
}
void ChatClient::ShowAdmins()const
{
for (auto i = 0; i < usercounter; i++)
{
string temp = typeid(*(userbase[i])).name();
if (temp == "class ChatAdmin")
{
userbase[i]->Show();
}
}
}
void ChatClient::ShowNotAdmins()const
{
for (auto i = 0; i < usercounter; i++)
{
string temp = typeid(*(userbase[i])).name();
if (!(temp == "class ChatAdmin"))
{
userbase[i]->Show();
}
}
}
int ChatClient::getYearSalaryBudget()const
{
int res = 0;
for (auto i = 0; i < usercounter; i++)
{
string temp = typeid(*(userbase[i])).name();
if (temp == "class ChatAdmin")
{
res += userbase[i]->doCalculateSalaryForYear();
}
}
return res;
}
ChatClient::~ChatClient()
{
foundationyear = NULL;
delete *userbase;
}