Quantcast
Channel: Forum Pasja Informatyki - Najnowsze pytania
Viewing all articles
Browse latest Browse all 65225

c++ sprawdzanie typu obiektu

$
0
0

Witam,

Postaram się zarysować mój problem:

Posiadam klasę World, ktora zawiera w sobie tablicę wskaźników na obiekty typu Postac;

Klasa Postac jest klasą bazową, po której dziedziczą klasa Wojownik oraz klasa Mag;

Po tych 2 klasach dziedziczą z kolei inne (patrz przykład)

class Postac
class Wojownik::public Postac
class Mag::public Postac
class Berzerker::public Wojowniik
class Paladyn:::public Wojownik
class Necromancer::public Mag
class Infernalist::public Mag

W klasie Postac znajduje się czysto wirtualna metoda walka();, natomiast klasy Mag i Wojownik nadpisuja metodę walka(), która to z kolei nie jest już czysto wirtualna; (ponieważ ta metoda ma szansę się wywołać, jesli jakas klasa dziedzicząca po klasie Mag lub Wojownik nie ma swojej metody walka();)

Jak już wspomnialem, po klasach Wojownik i Mag dziedzicza różne klasy np. po klasie Wojownik: paladyn, berzerker itd., a po klasie Mag: necromancer, infernalist itd.. Część z tych klas nadpisuje metode walka(), a czesc dziedziczy taka postac, jaka jest w ich bazowych klasach.

Metoda walka(); dla załóżmy klasy Wojownik ma zachowywać się tak, że jeśli spotkają się ci sami wojownicy(ten sam typ wojownika) np. berzerker z berzerkerem, to pozostają neutralni wobec siebie i się rozchodzą, jeśli natomiast 2 inne typy się zpotkają np. berzerker z paladynem, to dochodzi do walki.

I tutaj meritum, jak w metodzie walka();, pisząc ją dla klasy Wojownik sprawdzić czy obiekty, które się spotykają są tego samego typu czy innego(żeby mogły się rozejść lub walczyć).


Viewing all articles
Browse latest Browse all 65225

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>