操作数类型不兼容(“布尔(*)()”和“布尔”)
问题描述:
我想在Visual Studio社区2015中创建一个程序来玩井字游戏。听起来很简单,不是很多。 无论如何,我正在使用函数[bool playerCheck()]为函数进行切换,以检查用户选择的空间是否已被占用。操作数类型不兼容(“布尔(*)()”和“布尔”)
void checkInput()
{
if (playerCheck == true)
Visual Studio中给出了 “==” 下的波浪线和给出了消息
操作数类型不兼容( “布尔(*)()” 和 “布尔”)。
不确定语法应该如何将函数输出与常量进行比较。
答
playerCheck
是需要为了得到布尔结果被调用的函数,即:
if (playerCheck() == true)
bool (*)()
是一个函数,它不带任何参数,并返回boolean值的类型。
playerCheck == true
是试图将函数指针有一个布尔值,这导致其不言自明的编译错误比较。
playerCheck() == true
是调用函数并将结果(布尔类型)与布尔值进行比较。
注意if (x == true)
一般可以缩写为if (x)
,所以你可以只写
if (playerCheck())
阅读教程,*任何*教程? – Voo
'playerCheck()'是你如何调用'bool playerCheck(){/ * ... * /}' – crashmstr
'if(playerCheck()== true)'或者更好'if(playerCheck())' – pm100