Heim > Backend-Entwicklung > C++ > Warum erhalte ich in Visual Studio 2015 den Fehler „Nicht standardmäßige Syntax; verwenden Sie \'&\', um einen Zeiger auf ein Mitglied zu erstellen'?

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

Patricia Arquette
Freigeben: 2024-10-31 20:53:02
Original
850 Leute haben es durchsucht

Why Do I Get the

Visual Studio 2015: Fehler „Nicht standardmäßige Syntax; verwenden Sie '&', um einen Zeiger auf Member zu erstellen“ verstehen

Bei der Arbeit mit Memberfunktionen in C ist dies der Fall Es ist von entscheidender Bedeutung, die richtige Syntax zu verwenden, um darauf zuzugreifen. Der Fehler „Nicht standardmäßige Syntax; verwenden Sie ‚&‘, um einen Zeiger auf ein Mitglied zu erstellen“ tritt auf, wenn versucht wird, einen Mitgliedsfunktionsnamen direkt als Funktionszeiger zu verwenden.

Erklärung des Fehlers

In C kann eine Nicht-Member-Funktion ohne zusätzliche Syntax als Funktionszeiger verwendet werden. Beim Umgang mit Mitgliedsfunktionen ist die direkte Verwendung des Mitgliedsfunktionsnamens ohne die Funktionsaufrufsyntax jedoch ungültig. Stattdessen müssen Sie den &-Operator verwenden, um einen Zeiger auf die Member-Funktion zu erhalten.

Betrachten Sie beispielsweise die folgende Nicht-Member-Funktion:

<code class="cpp">void foo()
{
    // Function body
}</code>
Nach dem Login kopieren

In diesem Fall ist dies möglich Verwenden Sie den Namen der Foo-Funktion direkt in einem Ausdruck wie diesem:

<code class="cpp">foo; // Evaluates to a function pointer</code>
Nach dem Login kopieren

Betrachten Sie nun eine Mitgliedsfunktion innerhalb einer Struktur:

<code class="cpp">struct Bar
{
    void baz()
    {
        // Function body
    }
};</code>
Nach dem Login kopieren

Versuch, den Namen der Baz-Mitgliedsfunktion direkt in einem zu verwenden Ausdruck ohne die Funktionsaufrufsyntax führt zu einem Compilerfehler. Stattdessen müssen Sie den &-Operator verwenden, um einen Zeiger auf die Mitgliedsfunktion zu erhalten:

<code class="cpp">&amp;Bar::baz; // Valid</code>
Nach dem Login kopieren

Fehler in Ihrem Code beheben

In Ihrer TicTacToe.cpp-Datei definieren Sie zwei Mitglieder Funktionen, player1Move und player2Move, die den Fehler auslösen, mit dem Sie konfrontiert sind. Der richtige Weg, diese Funktionen zu definieren, besteht darin, den &-Operator wie folgt zu verwenden:

<code class="cpp">// Corrected version of player1Move
void TicTacToe::player1Move(string coordX)
{
    cout << "Enter X: " << endl;
    cin >> coordX;
    _coordX = coordX;
}</code>
Nach dem Login kopieren
<code class="cpp">// Corrected version of player2Move
void TicTacToe::player2Move(string coordX)
{
    cout << "Enter X: " << endl;
    cin >> coordX;
    _coordX = coordX;
}</code>
Nach dem Login kopieren

Durch diese Änderungen beseitigen Sie den Fehler „nicht standardmäßige Syntax“ und ermöglichen Ihrem Programm dies Greifen Sie korrekt auf die Mitgliedsfunktionen zu.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich in Visual Studio 2015 den Fehler „Nicht standardmäßige Syntax; verwenden Sie \'&\', um einen Zeiger auf ein Mitglied zu erstellen'?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage