当两个类在不同的文件中时,编译器为什么要给我Card deck[5]
的错误,但是如果我将它们放入同一文件中,则编译器批准?
我确实将" .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();
您可能有4个文件,card.h,card.cpp,player.h and player.cpp。在player.h中:
#include "card.h"
class Player { ... };
在player.cpp中:
#include "player.h"
...
在card.h中:
class Player; // Forward declaration
class Card { ... };
在card.cpp中:
#include "card.h"
#include "player.h"
...
就是这样。