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
Barbara StreisandOriginal
2024-12-19 16:03:09831Durchsuche

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;
};

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;
};

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!

Stellungnahme:
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