两个不同的标题GCC,Visual Studio 2012

two class different header, gcc, visual studio 2012

本文关键字:GCC 标题 Visual 2012 Studio 两个      更新时间:2023-10-16

当两个类在不同的文件中时,编译器为什么要给我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"
...

就是这样。