Statischer Variablen-Link-Fehler [Duplikat]
Bei der C-Programmierung kann ein Link-Fehler auftreten, wenn eine statische Variable deklariert, aber nicht definiert ist der Code. Dieser Fehler weist darauf hin, dass der Linker die Definition der statischen Variablen während der Verknüpfungsphase nicht finden kann.
Im angegebenen Code verfügt die Klasse Log über eine statische Variable theString, die in der Header-Datei Log.h deklariert ist, dies ist jedoch der Fall nicht in der Implementierungsdatei Log.cpp definiert. Um den Linkfehler zu beheben, muss die statische Variable in der Implementierungsdatei definiert werden.
Der korrigierte Code in Log.cpp sollte wie folgt lauten:
#include "Log.h" #include <ostream> string Log::theString; // Define the static variable here void Log::method(string arg) { theString = "hola"; cout << theString << endl; }
Zusätzlich wird empfohlen, die zu entfernen Verwenden des Namensraums std; Zeile aus der Header-Datei. Diese Vorgehensweise verhindert, dass der globale Namespace mit Standardsymbolen verunreinigt wird, was zu Namenskonflikten und potenziellen Fehlern führen kann.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich in C einen statischen Variablenverknüpfungsfehler?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!