2016-03-19 25 views
0

私は2つのクラスを前方参照を使用して参照していますが、各クラスのクラスインスタンス宣言でエラーが発生しています。 注:DirectXとバージョンコントロールが関係している場合は使用していますか?未定義クラス

はGame.h:

#ifndef GAME_H 
#define GAME_H 

class Player; 

class Game { 
public: 
    Player player; // Undefined class error here 
//... 
}; 

#endif 

Player.h:

#ifndef PLAYER_H 
#define PLAYER_H 

class Game; 

class Player { 
public: 
    Game game; // Undefined class error here 
//... 
}; 

#endif 

は明らかに、より多くのコードがあるが、私はそれが簡単にあなたが読むことになるだろう唯一の基本的なコードを含む、と思いました。

ご協力いただければ幸いです。

感謝

アッシュ

答えて

0

コンパイラが一度にそのタイプの完全な宣言を持っている必要があり、特定のタイプのメンバーを宣言するために:

class Player; 

class Game { 
public: 
     Player player; // dunno what this means 

あなたが作成しましたポインタや参照でのみ解決できる不幸な循環依存性:

// Game.h 
#include "player.h" 

class Game { 
    Player player; // ok 
}; 

// Player.h 

class Game; 

class Player { 
    Game* game; // ok. 
}; 
+0

そうですね、同じことを言ったいくつかのフォーラムソリューションを読んだことがありますが、解決策を実行するとまだエラーが出ます。 私は自分のcppファイルでゲームを参照しているときに "不完全なクラス型へのポインタが許可されていません"と言います。 –