Avatar ·

如何修复C++中因类循环依赖导致的编译错误?

大家好!我正在用C++编写一个简单的游戏,遇到了一个困扰我几个小时的问题。 我有两个类:`Player`(玩家)和`Enemy`(敌人)。玩家应该能够攻击敌人,而敌人需要知道玩家的位置以追踪他。我试图让每个类包含指向另一个类的指针。 以下是简化后的代码: **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) { // 追踪逻辑 } ``` 当我尝试编译时,编译器会报出类似这样的错误: