Здесь есть две основные проблемы.
Во-первых, при определении Hero::attackEnemy
квалификатор static
здесь недопустим.Член уже объявлен как static
в определении класса, поэтому нет необходимости применять его и здесь.
Во-вторых, во время определения Hero::attachEnemy
класс Enemy
еще не былопределены.Вам нужно переместить определение Hero::attachEnemy
после определения class Enemy
.
class Enemy;
class Hero {
...
};
class Enemy {
...
};
void Hero::attackEnemy(Enemy *e1, Hero *h1)
{
e1->hp -= h1->power;
}
Кроме того, это недопустимый вызов функции / метода:
h1->attackEnemy(Enemy *e1, Hero *h1);
Вы хотите:
h1->attackEnemy(e1, h1);