Heim >Backend-Entwicklung >C++ >Was verursacht „Undefinierte Referenz auf statisches Mitglied'-Fehler in C und wie werden sie behoben?
In C ist eine statische Mitgliedsvariable eine Klassenvariable, die unabhängig von einer Objektinstanz existiert . Sie wird normalerweise zur Kompilierungszeit initialisiert und kann von allen Instanzen der Klasse gemeinsam genutzt werden.
Wenn Sie jedoch eine statische Mitgliedsvariable deklarieren, ohne eine Definition anzugeben, generiert der Compiler eine Fehlermeldung über eine „undefinierte Referenz“. ." Dies liegt daran, dass der Compiler den Speicherort der statischen Variablen kennen muss, um Code zu generieren, der darauf zugreift.
Um diesen Fehler zu beheben, müssen Sie eine Definition für die statische Mitgliedsvariable in einer Quelldatei bereitstellen ( .cpp-Datei). Die Definition sollte denselben Namen wie die Deklaration in der Header-Datei (.h-Datei) haben, ihr sollte jedoch der Bereichsoperator (::) vorangestellt sein. Zum Beispiel:
// header file class Example { public: static int x; }; // source file int Example::x;
Dies definiert den Speicherort für die statische Variable x und ermöglicht es dem Compiler, Code zu generieren, der darauf zugreift.
Sonderfälle
Andere Verwendungen von static
Das Schlüsselwort static hat unterschiedliche Bedeutungen, wenn es auf Objekte angewendet wird oder Funktionen, die nicht in einem Klassenbereich liegen:
Das obige ist der detaillierte Inhalt vonWas verursacht „Undefinierte Referenz auf statisches Mitglied'-Fehler in C und wie werden sie behoben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!