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?
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!