私は演習として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
か?