Cómo corregir errores de compilación por dependencia cíclica de clases en C++?
¡Hola a todos! Estoy escribiendo un juego simple en C++ y me encontré con un problema que no puedo resolver desde hace varias horas.
Tengo dos clases: `Player` (jugador) y `Enemy` (enemigo). El jugador debe poder atacar al enemigo, y el enemigo debe conocer al jugador para perseguirlo. Estoy intentando hacer que cada clase contenga un puntero a la otra clase.
Aquí está el 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 persecución
}
```
Cuando intento compilar, el compilador muestra errores como `"Player" has not been declared` o `unknown type`.