Heim > Backend-Entwicklung > C++ > Warum erhalte ich für statische Objekte den Fehler „Unaufgelöstes externes Symbol' (LNK2001)?

Warum erhalte ich für statische Objekte den Fehler „Unaufgelöstes externes Symbol' (LNK2001)?

Barbara Streisand
Freigeben: 2024-11-01 01:53:02
Original
960 Leute haben es durchsucht

Why Am I Getting an

Behebung eines ungelösten externen Symbolfehlers (LNK2001) für statische Objekte

Bei einem Versuch, einem statischen Feld in einer Klasse einen Wert zuzuweisen Bei der Hauptmethode ist ein unerklärlicher Fehler aufgetreten: „Unaufgelöstes externes Symbol“. Dieser Fehler weist darauf hin, dass der Linker während des Verknüpfungsprozesses keine Definition für die statische Mitgliedsvariable finden konnte.

Gemäß der C-Referenz ist eine Deklaration eines statischen Datenmitglieds innerhalb einer Klassendefinition keine Definition. Das bedeutet, dass Sie die statische Mitgliedsvariable nicht innerhalb der Klasse selbst definieren können. Um den Fehler zu beheben, müssen Sie das statische Mitglied außerhalb der Klasse in einem Namespace-Bereich definieren.

In Ihrem Fall sollten Sie die statische Mitgliedsvariable B::a außerhalb von B-Klasse wie folgt:

<code class="cpp">A* B::a;</code>
Nach dem Login kopieren
Dadurch wird sichergestellt, dass der Linker die Definition der statischen Mitgliedsvariablen erfolgreich finden kann. Durch Befolgen der One Definition Rule (ODR), die sicherstellt, dass es für jede Entität im Programm nur eine Definition gibt, kann der Compiler das externe Symbol auflösen und den Code erfolgreich verknüpfen.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich für statische Objekte den Fehler „Unaufgelöstes externes Symbol' (LNK2001)?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage