Heim >Backend-Entwicklung >C++ >Warum tritt ein „undefinierter Verweis auf WindowsTimer::_frequenz' auf und wie wird das Problem behoben?
Undefinierter Verweis auf ein statisches Mitglied
Dieser Fehler tritt auf, wenn der Compiler die Definition einer statischen Mitgliedsvariablen nicht finden kann. In diesem Fall handelt es sich um die statische Mitgliedsvariable _frequenz der WindowsTimer-Klasse.
Den Code verstehen
Der angezeigte Code ist:
class WindowsTimer { public: WindowsTimer() { _frequency.QuadPart = 0ull; } private: static LARGE_INTEGER _frequency; };
Hier ist _frequenz eine statische Mitgliedsvariable vom Typ LARGE_INTEGER, die innerhalb der deklariert, aber nicht definiert wird Klasse.
Beheben des Fehlers
Die Fehlermeldung „undefinierter Verweis auf WindowsTimer::_frequenz“ weist darauf hin, dass der Compiler die Definition von _frequenz nicht finden kann. Statische Mitgliedsvariablen müssen außerhalb der Klassendeklaration definiert werden, normalerweise in der Implementierungsdatei (.cpp).
Um den Fehler zu beheben, fügen Sie der .cpp-Datei die folgende Definition hinzu:
LARGE_INTEGER WindowsTimer::_frequency;
Dadurch wird eine globale Variable vom Typ LARGE_INTEGER mit dem Namen _frequenz erstellt, die mit der WindowsTimer-Klasse verknüpft ist.
Warum das Andere Änderungen haben nicht funktioniert
Das obige ist der detaillierte Inhalt vonWarum tritt ein „undefinierter Verweis auf WindowsTimer::_frequenz' auf und wie wird das Problem behoben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!