嘗試存取以下成員函數時C不使用函數呼叫語法,Visual Studio 2015 遇到錯誤:「非標準語法;使用'&'建立指向成員的指標。」
在Visual Studio 中,可以在表達式中使用非成員函數,而無需使用函數呼叫語法。然而,對於成員函數來說,這是不被允許的。要取得指向成員函數的指針,需要使用 '&' 運算子。
錯誤的解決方案是在有問題的成員函數名稱前面加上 '& ' 運算符,建立指向成員函數的指標。透過這樣做,該函數可以在沒有函數呼叫語法的表達式中使用。
考慮以下類別定義:
<code class="cpp">class TicTacToe { public: void player1Move(string coordX); };</code>
存取player1Move成員在不使用函式呼叫語法的情況下,使用下列指向成員的指標:
<code class="cpp">TicTacToe::&player1Move;</code>
這個指向成員的指標現在可以無需明確呼叫函數即可在表達式中使用:
<code class="cpp">TicTacToe Board; (Board.*player1Move)("some_coordinate");</code>
透過使用'&' 運算符,Visual Studio 可以正確解釋意圖並避免非標準語法錯誤。
以上是為什麼 Visual Studio 2015 需要「&」來建立指向成員函數的指標?的詳細內容。更多資訊請關注PHP中文網其他相關文章!