2016-12-05 12 views
0

2つのクラスが別々のファイルにある場合、コンパイラはCard deck[5]のエラーを表示しますが、コンパイラはこれを同じファイルに入れますか?2つのクラスの異なるヘッダ、gcc、visual studio 2012

私は両方のファイルに ".h"を含めました。

ヘッダ1

class Card 
{ 
    private: 

     char* card_name; 
     int  card_value; 
     Color card_color; 

    public: 
     Card(); 

     void set_card(char * buffer , Card& c); 
     Card get_card(int index,Card deck[]); 
     int  get_card_value(); 
     void print_card(); 

     ~Card(); 
}; 

ヘッダー2

class Player 
{ 


    private: 

     friend class Card; 
     char* name; 
     char* id; 
     int  wins; 
     int  losses; 
     int  remains_move; 
     struct Coordinate cord; 
     Card deck[MAX_CARDS]; 


    public: 



     Player(); 


     int  Player_Array_Size(char* Creation,const int MAX_PLAYERS); 
     void Player_Creation_File(char* Creation); 
     void Player_Simulation_File(char* Simulation,int Array_Size); 
     void set_player(); 
     Player* get_player(); 
     void print_player(); 
     void move_to_point(int x ,int y); 
     void attack_using_card(int Attacker ,int Defender,int Attack_card); 
     void win_match(); 
     void lose_match(); 


     ~Player(); 
+2

[最小、*完全、および検証可能な例](http://stackoverflow.com/help/mcve)を作成してください。たとえば、いつ、どこで、どのようにヘッダファイルを組み込むのか、さらに重要なのはどのような順番にするのか。 –

+1

どのようにコードをコンパイルしますか? – theVoid

答えて

0

あなたはおそらく4つのファイル、card.h、card.cpp、player.hとplayer.cppを持っています。だ

#include "card.h" 
#include "player.h" 

... 

player.cppで
#include "card.h" 

class Player { ... }; 

:card.hで

#include "player.h" 

... 

:card.cppで

class Player; // Forward declaration 

class Card { ... }; 

player.hで それ。

+0

エラーはc209です: "plyaer :: deck"はundified claas "card"を使用します –

+0

私はそれをallreadyしました:( HとCの1ファイルで動作する事実は 2 Hと2にこぼしたCファイルにはHファイルが含まれています と私はcopmpileエラーを受け取ります –

+0

c209は間違っていたので、カードヘッダーがプレーヤーヘッダーに入ります –

関連する問題