Witam, jestem w trakcie robienia gry tekstowej i mam problem ze zrobieniem ekwipunku.
Ekwipunek:
class Ekwipunek {
public:
Ekwipunek(Tunika t, Spodnie s, Rekawice r, Buty b);
void zmienTunike();
void zmienSpodnie();
void zmienRekawice();
void zmienButy();
void zmienBron();
void dodajTunike(Tunika t);
void dodajSpodnie(Spodnie s);
void dodajRekawice(Rekawice r);
void dodajButy(Buty b);
void usunTunike();
void usunSpodnie();
void usunRekawice();
void usunButy();
void wyswietlTuniki();
void wyswietlSpodnie();
void wyswietlRekawice();
void wyswietlButy();
void wyswietlBronie();
private:
ZbrojaLista *tuniki;
ZbrojaLista *spodnie;
ZbrojaLista *rekawice;
ZbrojaLista *buty;
int ileBroni{1};
int ileTunik{1};
int ileSpodnii{1};
int ileRekawic{1};
int ileButow{1};
};
class Zbroja {
public:
Zbroja(int p, int z, int mz, int o);
void napraw();
virtual void ulepsz()=0;
int zwrocPoziom();
int zwrocZuzycie();
int zwrocMZuzycie();
int zwrocOchrona();
protected:
int poziom;
int zuzycie;
int maksZuzycie;
int ochrona;
};
class Tunika :public Zbroja {
public:
Tunika(int p=1, int z=100, int mz=100, int o=20);
virtual void ulepsz();
};
class Spodnie :public Zbroja {
public:
Spodnie(int p=1, int z=100, int mz=100, int o=10);
virtual void ulepsz();
};
class Rekawice :public Zbroja {
public:
Rekawice(int p=1, int z=100, int mz=100, int o=5);
virtual void ulepsz();
};
class Buty :public Zbroja {
public:
Buty(int p=1, int z=100, int mz=100, int o=5);
virtual void ulepsz();
};
class ZbrojaLista {
public:
ZbrojaLista(Zbroja *z);
void dodaj(Zbroja *z);
void usun(int i);
void zamien(int i=0, int j=1);
void zmien(Zbroja *z, int i);
Zbroja *zwroc(int i=0);
private:
int najwiekszyIndeks;
Zbroja *zbroja;
ZbrojaLista *w_nastepny;
};
int Zbroja::zwrocPoziom() {
return poziom;
}
int Zbroja::zwrocZuzycie() {
return zuzycie;
}
int Zbroja::zwrocMZuzycie() {
return maksZuzycie;
}
int Zbroja::zwrocOchrona() {
return ochrona;
}
Zbroja* ZbrojaLista::zwroc(int i) {
if(i==0) return zbroja;
return w_nastepny->zwroc(i-1);
}
void Ekwipunek::wyswietlTuniki() {
for(int i = 0; i<ileTunik; i++) {
cout << "Tunika nr " << i+1 << ":" << endl;
cout << " poziom: " << tuniki->zwroc(i)->zwrocPoziom << endl;
cout << " ochrona: " << tuniki->zwroc(i)->zwrocOchrona << endl;
cout << " zuzycie: " << tuniki->zwroc(i)->zwrocZuzycie << "/" << tuniki->zwroc(i)->zwrocMZuzycie << endl;
}
}
Kompilator zwraca mi błąd „Zbroja::zwrocPoziom”: niestandardowa składnia; użyj znaku „&”, aby utworzyć wskaźnik elementu członkowskiego i nie wiem jak to naprawaić
Próbowałem też przechowywać tuniki w vectorze vector<Tunika*> tuniki ale wyskakiwał mi ten sam błąd.
Z góry dzięki za pomoc