Unerklärlich - Objekt wird nicht übergeben?
-
Hey!
Folgendes:std::cout << player.getHealth() << std::endl; player.getInventory().useItem(*items[0], player); std::cout << player.getHealth() << std::endl;Nach useItem() sollte health eigentlich 150 sein, bleibt aber bei 50, warum?
Inventory:
void Inventory::useItem(Items &item, Entities &entity) { item.use(entity); }Items:
bool Potion::use(Entities &entity) { entity.addHealth(100); std::cout << "getrunken" << std::endl; return true; }Entities:
void Player::addHealth(short value) { health += value; }Ich komm einfach nicht dahinter, aber entity.addHealth(100); wird 100% ausgeführt, die Ausgabe ist:
50
getrunken
50Dabei übergebe ich das einzigartige Objekt von Player...
-
Mit 85% Sicherheit würde ich auf folgendes tippen:
Entitiy::addHealth(short) ist nicht virtual.
-
Anfängerfehler.
Vielen vielen Dank :p