#include <iostream>
#include <string>
#include <vector>
class Pracownik {
std::string imie;
std::string nazwisko;
int lata_pracy;
public:
Pracownik(std::string im="Gal", std::string na="Anonim", int lp=0) {
imie = im;
nazwisko = na;
lata_pracy = lp;
}
int pensja() const {
// podstawa + lata_pracy * dodatek + widzimisi� szefa
return 1000 + lata_pracy * 100 + nazwisko.size();
}
friend std::ostream & operator << (std::ostream & stream, const Pracownik &p);
};
class Firma {
public:
std::string nazwa;
std::vector<Pracownik> pracownicy;
Firma(std::string na="Wszystko i nic") {
nazwa = na;
}
void dodaj_pracownika(Pracownik &p);
friend std::ostream & operator << (std::ostream & stream, const Firma &f);
};
void Firma::dodaj_pracownika(Pracownik &p) {
pracownicy.push_back(p);
}
std::ostream & operator << (std::ostream & stream, const Firma &f) {
stream << "W firmie " + f.nazwa + " pracuj�: \n";
for (unsigned i=0; i<f.pracownicy.size(); i++)
stream << f.pracownicy[i] << std::endl;
return stream;
}
std::ostream & operator << (std::ostream & stream, const Pracownik &p) {
stream << p.nazwisko + ", pensja = " << p.pensja();
return stream;
}
int main() {
Pracownik p1("Jan", "Kowalski", 10);
Pracownik p2("Adam", "Nowak", 1);
Firma f;
f.dodaj_pracownika(p1);
f.dodaj_pracownika(p2);
std::cout << f << std::endl;
return 0;
}