【问题标题】:no matching function for call to 'game_rule' in c++在 C++ 中没有调用“game_rule”的匹配函数
【发布时间】:2019-11-07 12:47:39
【问题描述】:

我正在用 C++ 编写一个井字游戏项目。我编写了game_rule 函数来控制游戏流程,并在游戏结束函数中调用它我收到一条错误消息“没有匹配函数调用'game_rule'”。我尝试了所有可能的方法来找出原因,但没有成功。我通过了自定义二维数组,但它没有任何效果。

完整代码见:

code of tic-tac-toe

bool game_rule()
{

    if ((board_ele[0][0] == 'X' && board_ele[1][1] == 'X' && board_ele[2][2] == 'X') || (board_ele[0][0] == 'X' && board_ele[0][1] == 'X' && board_ele[0][2] == 'X') || (board_ele[1][0] == 'X' && board_ele[1][1] == 'X' && board_ele[1][2] == 'X') || (board_ele[2][0] == 'X' && board_ele[2][1] == 'X' && board_ele[2][2] == 'X') || (board_ele[0][0] == 'X' && board_ele[1][0] == 'X' && board_ele[2][0] == 'X') || (board_ele[0][1] == 'X' && board_ele[1][1] == 'X' && board_ele[2][1] == 'X') || (board_ele[0][2] == 'X' && board_ele[1][2] == 'X' && board_ele[2][2] == 'X'))
    {
        return true;
    }
    else
    {
        return false;
    }
}

void game_over()
{

    if (game_rule(board_ele) == true)
    {
        std::cout << "player 1 is won";
    }

    if (game_rule(board_ele) == true)
    {
        std::cout << "player 1 is won";
    }
}

【问题讨论】:

  • game_rule 不接受任何参数,但是当您调用它时,您将通过董事会。这是笔误吗?
  • bool game_rule() 声明该函数不接受任何参数。你可能需要退后几步,回到你的教科书、教程或课堂笔记,阅读更多关于函数以及如何声明/定义它们的信息。
  • 只要在112117中调用函数game_rule(board_ele)==true 时删除board_ele即可game_rule()==true onlinegdb.com/SyPRQqbor
  • 谢谢你的帮助,现在它工作得很好,我想念这个论点,但现在它工作得很好。
  • (OT:== true 是多余的。)

标签: c++ arrays function c++14 tic-tac-toe


【解决方案1】:

你声明 bool game_rule() 没有输入但是当你在这里调用它 if (game_rule(board_ele)==true) 你传递它输入。

如果您想将参数传递给 game_rule,请定义它,以便它可以接收来自与 board_ele 相同类型的输入。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-21
    • 2016-11-23
    • 2012-05-27
    • 1970-01-01
    • 1970-01-01
    • 2017-05-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多