Heim > Backend-Entwicklung > C++ > Hauptteil

Wie behebe ich den Fehler „Nicht standardmäßige Syntax; verwenden Sie „&', um einen Zeiger auf ein Mitglied zu erstellen' in Visual Studio 2015?

DDD
Freigeben: 2024-10-31 20:26:02
Original
921 Leute haben es durchsucht

How to Resolve

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() {}
};

&amp;Bar::baz;   // Valid</code>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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 &amp;Board.player1Move</code>
Nach dem Login kopieren

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.&amp;player1Move; // Valid pointer to member function</code>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!