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 關注
- 857 瀏覽
添加回答
舉報