Как передать массив, содержащий игровую доску, функции класса, определенной в отдельном файле .cpp? - PullRequest
0 голосов
/ 22 января 2019

Я работаю над проектом, в котором я использую два класса, Player и Board, у которых есть методы-прототипы в заголовочных файлах, определения в отдельных файлах .cpp, и оба они используются в файле main.cpp. При попытке передать массив пространств игровой доски, gameBoard [], в метод, board.taketurn (gameboard []), и я получаю сообщение об ошибке, «идентификатор» gameBoard «не определен».

Я новичок в c ++. Я многому научился в C, но у меня есть некоторые проблемы с классами.

class Board // Board Class in board.h
{
    public:
    void board();
    int gameBoard[]; //declaration of gameboard[]
    int takeTurn(int, int, string, int gameBoard[]); //method 
prototype
    static const int WIN_SPACE = 100;

    private:
    int spin(int, int, string);
    static const int SPIN_MAX = 6;
    static const int SPIN_MIN = 1;
};



//Method definition in board.cpp
int Board::takeTurn(int position, int prevPos, string playerName, 
int gameBoard[WIN_SPACE])
{
cout<< "it is "<<playerName<<"'s turn. They are currently on space " 
<<gameBoard[position]<<"."<<endl;
    spin(position, prevPos, playerName);
    return position, prevPos;
}


//code block containing call takeTurn, passing gameBoard[] as an arg
 while(player[i].getCurPosition() != board.WIN_SPACE)
        {
            int posititon;
            int prevPos;
            cout << "Press Enter to Continue";
            getchar(); 
            board.takeTurn(player[i].getCurPosition(), 
player[i].getPrevPosition(), player[i].getName(), board 
*gameBoard[board.WIN_SPACE]); //function Call
            //player[i].setCurPosition(position);

        }

Я хочу, чтобы функция takeTurn могла принимать gameBoard в качестве аргумента, чтобы я мог установить положение player [i] в ​​местоположение в массиве gameBoard [].

...