Heim >Backend-Entwicklung >C++ >Warum verursacht ein statisches Const-Integer-Mitglied in C einen Linkerfehler „Undefinierte Referenz'?
Undefinierter Verweis auf statisches Const-Integer-Mitglied
Trotz der falschen Annahme, dass C die Definition statischer Const-Member-Ganzzahlen innerhalb von Klassendefinitionen zulässt, wird der angegebene Code ausgelöst ein Linkerfehler aufgrund eines undefinierten Verweises auf test::N. Dieser Fehler tritt auf, wenn der Code versucht, die nicht initialisierte statische Mitgliedsvariable zu verwenden.
Es ist zwar möglich, statische konstante Ganzzahlen in der Klassendeklaration zu initialisieren, dies stellt jedoch keine Definition dar. Um das Problem zu beheben, muss das Mitglied separat im Namespace-Bereich definiert werden, jedoch ohne Initialisierer.
Da std::min in diesem Fall seine Parameter als konstante Referenz annimmt, ist eine Definition von test::N erforderlich ist erforderlich. Ohne die Definition kann der Linker den Verweis auf die Mitgliedsvariable nicht auflösen.
Das obige ist der detaillierte Inhalt vonWarum verursacht ein statisches Const-Integer-Mitglied in C einen Linkerfehler „Undefinierte Referenz'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!