Cześć. Dopiero zaczynam swoją przygodę z programowaniem i napotkałem pewien problem. Stworzyłem dwie klasy - "Pracownik" oraz "Firma".
W klasie Firma chciałbym korzystać z wektora wskaźników na obiekty klasy Pracownik ale mam z tym problem.
firma.hpp
#include <vector>
#include <iostream>
class Pracownik
{
std::string imie_nazwisko;
std::string stanowisko;
int zarobki;
int przepracowane;
public:
Pracownik (std::string name, std::string job, int zl_h) : imie_nazwisko(name), stanowisko(job), zarobki(zl_h){}
void setDane(std::string dane);
void setStanowisko(std::string job);
void setZarobki(int zl_h);
void setGodziny(int godziny);
std::string getDane();
std::string getStanowisko();
int getZarobki();
int getGodziny();
~Pracownik();
};
class Firma
{
std::vector<Pracownik*> pracownicy[100];
int index = 0;
public:
void dodaj_pracownika();
void wypisz_pracownikow();
};
firma.cpp
#include "firma.hpp"
#include <iostream>
#include <vector>
using namespace std;
void Firma::dodaj_pracownika()
{
string imie, posada;
int placa;
cout << "\nImie i nazwisko nowego pracowanika: ";
getline(cin, imie);
cout << "\nPosada: ";
getline(cin, posada);
cout << "\nZarobki na godzine: ";
cin >> placa;
Pracownik *nowy;
nowy = new Pracownik(imie, posada, placa);
pracownicy->push_back(nowy);
index++;
}
void Firma::wypisz_pracownikow()
{
for(int i = 0; i < index; i++)
{
cout << "\nPracownik nr " << i << ":\n";
cout << pracownicy[i].getDane() << ", ";
cout << pracownicy[i].getStanowisko() << endl;
cout << "Zl/h: " << pracownicy[i].getZarobki() << endl;
cout << "Przepracowane godziny w tym miesiacu: " << pracownicy[i].getGodziny() << endl;
}
}
Problem jest z void Firma::wypisz_pracownikow()
w firma.cpp.
'28 error: class std::vector<Pracownik*>' has no member named 'getDane' - podobny błąd jest z kolejnymi trzema linijkami
Czegoś ewidentnie nie rozumiem i nie jestem sobie w stanie z tym poradzić.
W jaki inny sposób mogę wywołać te metody?