私は演習としてC++で小さなゲームをプログラミングしていますが、難問に遭遇しました。基本的な考え方は、aLevelにはのvectorがありEntity、各Entityインスタンスはそれが属するレベルを知っているということです。これまでのところかなり簡単です。
Entityクラスが何であるかを理解できなかったため、コンパイルエラーが発生していLevelました。の宣言の直前の単純なフォワードクラス宣言Entityは、それを簡単に修正しました。しかし、私はすでにに含め"Level.h"てい"Entity.h"ます。そしてLevel、とEntityは同じ名前空間で宣言および定義されています。
注:Entity.hも含まれLevel.hます。
#include "Level.h"
namespace GameNS {
// Required, otherwise the compiler complains
class Level;
class Entity
{
public:
...
Levelコンパイラは、到達するまでに、それが何であるかをすでに知っているべきではありませんEntityか?