Witam! Pisząc aplikację konsolową napotkałem problem jak w temacie. Kod przedstawi jaśniej sprawę:
class character
{
int hp;
string name;
int min_dmg;
int max_dmg;
int defense;
int capacity;
vector <item> items;
public:
character(int aHp, string aName, int aMin_dmg, int aMax_dmg, int aDefense, int aCapacity)
{
hp = aHp;
name = aName;
min_dmg = aMin_dmg;
max_dmg = aMax_dmg;
defense = aDefense;
capacity = aCapacity;
for (int i = 0; i < max_items; i++)
{
items.push_back(item("empty", 0));
}
}
int getMin_dmg()
{
return min_dmg;
}
int getMax_dmg()
{
return max_dmg;
}
};
int random(int min, int max)
{
return min + rand() % (max - min + 1);
}
void battle(character &opponent1, character &opponent2)
{
opponent1.setHp(random(opponent2.getMin_dmg, opponent2.getMax_dmg)); //tu ten błąd
}
Dlaczego tak się dzieje? Zwracany wynik getMax_dmg
jest przecież typu int
jak i sam max_dmg
. To samo z getMin_dmg
. Dlaczego nie mogę się odwołać do obiektu, wstawić jego wartości do drugiej funkcji?