Heim > Backend-Entwicklung > C++ > Warum erhalte ich beim Zugriff auf statische Variablen in C die Fehlermeldung „Undefinierter Verweis auf statische Variable'?

Warum erhalte ich beim Zugriff auf statische Variablen in C die Fehlermeldung „Undefinierter Verweis auf statische Variable'?

Susan Sarandon
Freigeben: 2024-12-30 01:12:16
Original
421 Leute haben es durchsucht

Why Do I Get

Problem mit der Referenzierung statischer Variablen in C

In C kann der Zugriff auf statische Variablen innerhalb nicht statischer Klassenmethoden zu Kompilierungsfehlern führen, wenn die statischen Variable ist nicht richtig definiert. Ein häufiger Fehler ist „undefinierter Verweis auf statische Variable“.

Das Problem

Bedenken Sie den folgenden Codeausschnitt:

class Helloworld {
  public:
    static int x;
    void foo();
};

void Helloworld::foo() {
  Helloworld::x = 10;
}
Nach dem Login kopieren

Dieser Code zielt darauf ab, über die nicht-statische Methode foo() auf die statische Variable x zuzugreifen. Das Kompilieren dieses Codes kann jedoch zum Fehler „Undefinierter Verweis auf statische Variable“ führen, da der statischen Variablen x eine Definition fehlt.

Die Lösung

Die Lösung ist: Geben Sie eine Definition für die statische Variable x außerhalb der Klassendefinition an. Die Definition kann nach der Klassendefinition hinzugefügt werden, wie unten gezeigt:

class Helloworld {
  public:
    static int x;
    void foo();
};

// Definition of static variable x
int Helloworld::x = 0; // Initialize x to 0 (or any appropriate value)

void Helloworld::foo() {
  Helloworld::x = 10;
}
Nach dem Login kopieren

Durch die Definition der statischen Variablen x außerhalb der Klassendefinition kann der Compiler Speicher für x finden und zuweisen. Darüber hinaus ist es wichtig, die statische Variable auf einen bestimmten Wert zu initialisieren oder zuzulassen, dass sie bei Fehlen eines Initialisierers auf Null initialisiert wird.

Mit diesen Änderungen wird der Code erfolgreich kompiliert und ausgeführt, sodass Sie dies tun können Greifen Sie über nicht statische Mitgliedsfunktionen der Helloworld-Klasse auf die statische Variable x zu.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich beim Zugriff auf statische Variablen in C die Fehlermeldung „Undefinierter Verweis auf statische Variable'?. 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