Heim > Artikel > Backend-Entwicklung > Wie behebe ich den Fehler „Nicht standardmäßige Syntax; verwenden Sie „&“, um einen Zeiger auf ein Mitglied zu erstellen“ in Visual Studio 2015?
Visual Studio 2015-Fehler C3867: „Nicht standardmäßige Syntax; verwenden Sie ‚&‘, um einen Zeiger auf ein Mitglied zu erstellen“
Frage:
Beim Versuch, ein Tic Tac Toe-Spiel in C zu entwickeln, ist ein Benutzer auf den Fehler C3867 gestoßen: „Nicht standardmäßige Syntax; verwenden Sie '&', um einen Zeiger zum Merken zu erstellen“. Obwohl versucht wird, Lösungsvorschläge zu machen, bleibt der Fehler bestehen. Wie kann das Problem gelöst werden?
Antwort:
Die Fehlermeldung weist darauf hin, dass der Code versucht, einen Mitgliedsfunktionsnamen ohne Verwendung des Adressenoperators (&) zu verwenden. ), um einen Zeiger auf die Member-Funktion zu erstellen.
In Nicht-Member-Funktionen kann der Funktionsname direkt in einem Ausdruck verwendet werden, ohne die Funktionsaufrufsyntax zu verwenden. In Mitgliedsfunktionen ist die Verwendung des Mitgliedsfunktionsnamens ohne die Aufrufsyntax jedoch ungültig.
Um einen Zeiger auf eine Mitgliedsfunktion zu erhalten, muss der &-Operator verwendet werden:
<code class="c++">struct Bar { void baz() {} }; &Bar::baz; // Valid</code>
Anwenden Wenn Sie dieses Konzept auf den bereitgestellten Code anwenden, tritt das Problem in der Funktion „player1Move“ auf:
<code class="c++">void TicTacToe::player1Move(string coordX) // ERROR { cout << "Enter X: " << endl; cin >> coordX; _coordX = coordX; }</code>
In diesem Code ist die Funktion „player1Move“ eine Mitgliedsfunktion der TicTacToe-Klasse und der Fehler wird durch die Verwendung des Funktionsnamens verursacht player1Move ohne den Adressenoperator:
<code class="c++">Board.player1Move; // ERROR: Should be Board.player1Move() or &Board.player1Move</code>
Durch Hinzufügen des &-Operators erstellt der Code korrekt einen Zeiger auf die Mitgliedsfunktion:
<code class="c++">void TicTacToe::player1Move(string coordX) { cout << "Enter X: " << endl; cin >> coordX; _coordX = coordX; } Board.&player1Move; // Valid pointer to member function</code>
Das obige ist der detaillierte Inhalt vonWie behebe ich den Fehler „Nicht standardmäßige Syntax; verwenden Sie „&“, um einen Zeiger auf ein Mitglied zu erstellen“ in Visual Studio 2015?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!