Como corrigir erros de compilação devido a dependência cíclica de classes em C++?
Olá a todos! Estou escrevendo um jogo simples em C++ e me deparei com um problema que não consigo resolver há várias horas.
Tenho duas classes: `Player` (jogador) e `Enemy` (inimigo). O jogador deve ser capaz de atacar o inimigo, e o inimigo deve saber sobre o jogador para persegui-lo. Estou tentando fazer com que cada classe contenha um ponteiro para a outra classe.
Aqui está o código simplificado:
**Player.h:**
```cpp
#ifndef PLAYER_H
#define PLAYER_H
#include "Enemy.h"
class Player {
public:
void attack(Enemy* e);
int health;
};
#endif
```
**Enemy.h:**
```cpp
#ifndef ENEMY_H
#define ENEMY_H
#include "Player.h"
class Enemy {
public:
void chase(Player* p);
int health;
};
#endif
```
**Player.cpp:**
```cpp
#include "Player.h"
void Player::attack(Enemy* e) {
e->health -= 10;
}
```
**Enemy.cpp:**
```cpp
#include "Enemy.h"
void Enemy::chase(Player* p) {
// lógica de perseguição
}
```
Quando tento compilar, o compilador exibe erros como