Tablica wskazników na rózne klasy?

0

Witam, tworze prostą gierkę i mam pewien problem. Stworzyłem m.in następujący kod:

 
class przedmioty
{
private:
    string nazwa;
    string opis;
    int cena;
public:
    przedmioty() : nazwa("No name"), opis("None"), cena(0) {}
    przedmioty(string name, string details, int koszt) : nazwa(name), opis(details), cena(koszt) {}
    void showall();
};

class miecze : public przedmioty
{
private:
    int punkty_ataku;
    int wytrzymalosc;
public:
    miecze() : przedmioty() {}
    miecze(string nazwa, string szczegol, int koszt, int pa, int wyt) : przedmioty(nazwa,szczegol,koszt), punkty_ataku(pa), wytrzymalosc(wyt)  {}
    void showall();
};

class zbroje : public przedmioty
{
private:
    int punkty_obrony;
    int wytrzymalosc;
public:
    zbroje() : przedmioty() {}
    zbroje(string nazwa, string szczegol, int koszt, int po, int wyt) : przedmioty(nazwa,szczegol,koszt), punkty_obrony(po), wytrzymalosc(wyt)  {}
    void showall();
};



void przedmioty::showall()
{
    cout << nazwa << " " << opis << " " << cena << " ";
}

void miecze::showall()
{
    przedmioty::showall();
    cout << punkty_ataku << " " << wytrzymalosc << endl;
}

void zbroje::showall()
{
    przedmioty::showall();
    cout << punkty_obrony << " " << wytrzymalosc << endl;
}



    miecze *bron = new miecze[5];
    bron[0]= miecze("Drewniany kij", "Drewniany kij z drewnianego drewna", 50, 2, 30);
    bron[1]= miecze("Brazowy miecz", "Standardowy brazowy miecz", 250, 6, 60);
    bron[2]= miecze("Zelazny miecz", "Zelazny miecz noszony przez zolnierzy imperium", 500, 12, 90);
    bron[3]= miecze("Katana", "Ostre jak brzytwa zelazo ze sredniowiecznej japoni", 750, 18, 150);
    bron[4]= miecze("Miecz chaosu", "Yeah baby", 1500, 25, 120);
   
    zbroje *pancerz= new zbroje[5];
    pancerz[0]= zbroje("Koszulka", "Koszulka z welny", 30, 2, 20);
    pancerz[1]= zbroje("Kolczuga", "Zelazna kolczuga", 300, 5, 50);
    pancerz[2]= zbroje("Zbroja plytowa", "Zbroja plytowa dobrej jakosci", 800, 13, 200);
    pancerz[3]= zbroje("Zbroja z mithrilu", "Zbroja z antycznego materialu", 1200, 20, 220);
    pancerz[4]= zbroje("ADEPTUS ASTARES ARMOR", "Zbroja najwierniejszych slug imperatora", 3000, 50, 2000);

I chodziłoby o to iż klas dziedziczących po przedmioty jest więcej tak samo tablic i o wiele wygodniejsze do wyświetlania byłoby mieć jedną tablice zabierająca cały możliwy ekwipunek. Dlatego chciałbym się zapytać czy da się stworzyć tablice wskaźników na różne klasy albo ich metody lub obiekty i jak za to się zabrać? Z góry dziękuje za jakiekolwiek sugestie.

2

Można. Lekcja na dziś:

  • polimorfizm
  • funkcje wirtualne
0

Dzięki, coś takiego już wielce pomaga.

1 użytkowników online, w tym zalogowanych: 0, gości: 1