Kompletnie nie jestem zaznajomiony ze wzorcami projektowymi, mam tylko teorie opanowaną.
Powiedzmy że mamy grę w której jest ekwipunek 4x6, który jest zadeklarowany jako
Item ekwipunek[4][6];
gdzie Item to jakaś klasa. Ale ten Item może być bronią albo zbroją czyli coś takiego
class Item
{
public:
double cost;
};
class Weapon :public Item
{
public:
double cost;
double damage;
};
class Armor :public Item
{
public:
double cost;
double defence;
};
mam też wskaźnik
Item* it;
który wskazuje na to co aktualnie kliknęliśmy, przykładowo jeżeli kliknę w ekwipunku pole o współrzędnych (2, 3), to
it = &ekwipunek[1][2];
i teraz mam problem bo mamy funkcje która daje graczowi broń do ręki z ekwipunku
void setWeapon( Weapon weapon )
{
//kod ktory daje graczowi bron, nieistotne w kontekscie mojego pytania
}
ale nie mogę napisać
setWeapon( it );
ponieważ it to nie Weapon. Jak napisać kod który jest w stanie sprawdzić czy it to broń? Albo jak wy byście rozwiązali tego typu problem?