#include <iostream>
#include <string>
#include <cstring>
using namespace std;
class Vraboten
{
protected:
string ime;
int plataChas;
int chasovi;
public:
Vraboten(string i=" ", int pc=0, int c=0)
{
ime=i;
pc=plataChas;
chasovi=c;
}
Vraboten(const Vraboten &v)
{
ime=v.ime;
plataChas=v.plataChas;
chasovi=v.chasovi;
}
int isplati()
{
cout<<plataChas*chasovi<<endl;
return (plataChas*chasovi);
}
Vraboten &operator++()
{
plataChas++;
return *this;
}
friend ostream &operator<<(ostream &out, Vraboten &v)
{
out<<v.ime<<" "<<v.plataChas<<" "<<v.chasovi<<endl;
return out;
}
friend bool operator==(Vraboten &v1, Vraboten &v2)
{
return (v1.isplati()==v2.isplati());
}
};
class Menadzer:public Vraboten
{
protected:
Vraboten vraboteni[1000];
int br_vraboteni;
public:
Menadzer(string i=" ", int pc=0, int c=0, int brv=0, Vraboten *v=NULL):Vraboten(i, pc, c)
{
br_vraboteni=brv;
for(int i=0;i<br_vraboteni;i++)
{
vraboteni[i]=v[i];
}
}
int isplati()
{
cout<<Vraboten::isplati()+br_vraboteni*5*plataChas<<endl;
return Vraboten::isplati()+br_vraboteni*5*plataChas;
}
Menadzer &operator+=(Vraboten &v)
{
if(br_vraboteni<1000)
{
vraboteni[br_vraboteni++]=v;
return *this;
}
}
};
class Inzener:public Vraboten
{
protected:
string proekti[100];
int br_proekti;
public:
Inzener(string i=" ", int pc=0, int c=0, int brp=0, string *p=NULL):Vraboten(i, pc, c)
{
br_proekti=brp;
for(int i=0;i<br_proekti;i++)
{
proekti[i]=p[i];
}
}
int isplati()
{
cout<<Vraboten::isplati()+0.1*Vraboten::isplati()*br_proekti<<endl;
return (Vraboten::isplati()+0.1*Vraboten::isplati()*br_proekti);
}
Inzener &operator+=(string p)
{
if(br_proekti<100)
{
proekti[br_proekti++]=p;
return *this;
}
}
};
int main()
{
cout << "Hello world!" << endl;
return 0;
}