Witam, jest ktoś wstanie wyłapać błąd w kodzie i wytłumaczyć mi dlaczego zmienna HP wciąż wynosi 45, poniżej kod
#include <iostream>
using namespace std;
class Potwor //nazwa klasy
{
private:
string nazwa; //zbiór zmiennych w jej ciele
int atak;
int HP;
public:
Potwor() //konstruktor
{
nazwa = "szkieletor";
atak = 15;
HP = 45;
}
Potwor(string n, int a, int h) //kolejny konstruktor
{
nazwa = n;
atak = a;
HP = h;
}
void zaatakuj(Potwor atakowany)
{
atakowany.HP = atakowany.HP - this->atak;
}
string zwrocNazwe(){return nazwa;}
int zwrocHP(){return HP;}
int zwrocAtak(){return atak;}
};
int main()
{
Potwor p1; //korzysta z pierwszego konstruktora;
Potwor p2 = {"wilkolak", 35, 150};
cout<<p1.zwrocNazwe()<<" ma "<<p1.zwrocHP()<<" punktow zycia"<<endl;
cout<<p2.zwrocNazwe()<<" ma "<<p2.zwrocAtak()<<" punktow ataku"<<endl;
cout<<p2.zwrocNazwe()<<" atakuje "<<p1.zwrocNazwe()<<endl;
p2.zaatakuj(p1);
cout<<p1.zwrocNazwe()<<" ma "<<p1.zwrocHP()<<" punktow zycia"<<endl;
return 0;
}
zupełnie jakby nie działa metoda zaatakuj()