我正在制作一个 tictactoe 游戏,希望玩家的函数可以访问我在 main 和其他函数中声明的对象,我该怎么做?
void Player1Turn::player1Turn() {
char num;
cin >> num;
if (num == '1')
{
board[0][0] = { xo1 };
}
例如,我怎样才能让棋盘改变游戏棋盘的值?
int main()
{
Setup setup;
Gameboard gameboard;
Player1Turn player1turn;
setup.setup();
gameboard.printBoard();
player1turn.player1Turn();
return 0;
}
如果这还不够,我可以提供更多
最佳答案
您可以添加对特定 Gameboard
的引用作为 player1Turn
成员函数的参数。因此,假设您的 Gameboard
类有一个 board[][]
成员,它看起来像这样:
void Player1Turn::player1Turn(Gameboard& gb)
{
char num;
cin >> num;
if (num == '1')
{
gb.board[0][0] = { xo1 }; // Exact code will depend on your "Gameboard" definition.
}
}
你从 main
调用会是这样的:
int main()
{
Setup setup;
Gameboard gameboard;
Player1Turn player1turn;
setup.setup();
gameboard.printBoard();
player1turn.player1Turn(gameboard); // Argument is the Gameboard to work on.
return 0;
}
不过,还有许多其他方法可以实现这一点,但如果没有您的各种类的更多详细信息,我真的无法提出更多/更好的建议。另一种方式,如 comment by Nico Schertler 中所建议的那样,将引用 Gameboard
作为 Player1Turn
类中的“数据”成员,并在其构造函数中传递引用。
随时要求进一步澄清和/或解释。
PS:您使用的三个名称“Player1Turn”(针对类)、“player1Turn”(针对成员函数)和“player1turn”(针对 main
中的特定对象)是极度容易出现打字错误!你应该认真地考虑一个更好的命名方案!!
关于c++ - 我如何从不同的类中获取函数来调用在 Main 中声明的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59380398/