Ten kód není zrovna ukázkovej... Když už, tak aspoň takto
#include <iostream>
#include <string>
using namespace std;
class Zamestnanec {
string jmeno, prijmeni;
int vek;
public:
Zamestnanec() {}
Zamestnanec(const string & jmeno, const string & prijmeni, int vek)
: jmeno(jmeno), prijmeni(prijmeni), vek(vek) {}
friend ostream & operator<<(ostream & os, const Zamestnanec & zamestnanec) {
return os << zamestnanec.jmeno << ' '
<< zamestnanec.prijmeni << " ("
<< zamestnanec.vek << ')';
}
};
class Zamestnanci {
size_t pocet, velikost;
Zamestnanec * zamestnanci;
public:
Zamestnanci() : pocet(0), velikost(8), zamestnanci(new Zamestnanec[velikost]) {}
~Zamestnanci() { delete[] zamestnanci; }
size_t Pocet() const { return pocet; }
Zamestnanci & operator+=(const Zamestnanec & zamestnanec) {
if (pocet >= velikost) {
velikost *= 2;
Zamestnanec * pom = new Zamestnanec[velikost];
for(size_t i = 0; i < pocet; i++)
pom[i] = zamestnanci[i];
delete[] zamestnanci;
zamestnanci = pom;
}
zamestnanci[pocet++] = zamestnanec;
return *this;
}
friend ostream & operator<<(ostream & os, const Zamestnanci & zamestnanci) {
for (size_t i = 0; i < zamestnanci.pocet; i++)
os << zamestnanci.zamestnanci[i] << endl;
return os;
}
};
int main(void) {
Zamestnanci zamestnanci;
zamestnanci += Zamestnanec("Jan", "Novák", 27);
zamestnanci += Zamestnanec("Franta", "Vomáčka", 22);
cout << zamestnanci;
}
Ale pořád tam samozřejmě chybí tuna věcí...