我正在用 C++ 编写一个小游戏作为练习,我遇到了一个难题。基本思想是 aLevel
有一个vector
of Entity
,每个Entity
实例都知道它属于哪个级别。到目前为止非常简单。
我在我的 Entity 类中遇到了一些令人讨厌的编译错误,因为它无法弄清楚是什么Level
。在声明之前的一个简单的前向类声明Entity
很容易解决这个问题。但是,我已经包含"Level.h"
在"Entity.h"
. And Level
andEntity
都在同一个命名空间中声明和定义。
注:Entity.h
还包括Level.h
.
#include "Level.h"
namespace GameNS {
// Required, otherwise the compiler complains
class Level;
class Entity
{
public:
...
Level
编译器不应该在它到达时已经知道是什么Entity
吗?