Heim > Backend-Entwicklung > C++ > Warum erhalte ich in C den Fehler „Undefinierter Verweis auf statische Variable' und wie kann ich ihn beheben, ohne statische Methoden zu verwenden?

Warum erhalte ich in C den Fehler „Undefinierter Verweis auf statische Variable' und wie kann ich ihn beheben, ohne statische Methoden zu verwenden?

Barbara Streisand
Freigeben: 2024-12-19 16:03:09
Original
802 Leute haben es durchsucht

Why Do I Get an

Undefinierter Verweis auf statische Variable in C

Bei der Arbeit mit statischen Variablen in C stoßen Entwickler häufig auf den Fehler „undefinierter Verweis auf statische Variable“. ." Dieser Artikel untersucht dieses Problem und bietet eine Lösung ohne Verwendung einer statischen Methode.

Problem:

Bedenken Sie den folgenden Code:

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

Dies Code löst einen Fehler „undefinierte Referenz“ aus, da die statische Variable x in einer nicht statischen Methode foo() referenziert wird, ihr jedoch a fehlt Definition.

Lösung:

Um dieses Problem zu beheben, ist es wichtig, eine Definition für die statische Mitgliedsvariable x außerhalb der Klassendefinition bereitzustellen. Dies kann wie folgt erreicht werden:

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

// Define the static variable outside the class
int Helloworld::x = 0;

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

Indem Sie den Anfangswert als 0 angeben oder ihn undefiniert lassen, wird x mit Null initialisiert. Alternativ kann ein passenderer Anfangswert zugewiesen werden.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich in C den Fehler „Undefinierter Verweis auf statische Variable' und wie kann ich ihn beheben, ohne statische Methoden zu verwenden?. 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