3 回答

TA贡献1851条经验 获得超3个赞
问题在于包含以下内容的行(它在您的代码中出现两次):
Board.player1Move;
播放器的一招是一个函数,该函数接收std :: string参数作为输入。为了调用它,您需要创建一个std :: string对象并将其作为函数的参数传递。如果希望将字符串作为输入给出,则可以使用以下语法:
std::string move;
cin >> move;
Board.player1Move(move);
另外,请注意,player2Turn应该调用Board.player2Move而不是Board.player1Move。

TA贡献1934条经验 获得超2个赞
drorco的答案中已经提供了解决问题的方法。我将尝试解释错误消息。
当您具有非成员函数时,可以在表达式中使用函数名称,而无需使用函数调用语法。
void foo()
{
}
foo; // Evaluates to a function pointer.
但是,当您具有成员函数时,在没有函数调用语法的表达式中使用成员函数名称无效。
struct Bar
{
void baz() {}
};
Bar::baz; // Not valid.
要获得指向成员函数的指针,您需要使用&运算符。
&Bar::baz; // Valid
这解释了Visual Studio的错误消息:
"non-standard syntax; use '&' to create a pointer to member"
- 3 回答
- 0 关注
- 836 浏览
添加回答
举报