Heim > Backend-Entwicklung > C++ > Warum erhalte ich „Undefinierte Verweise' auf statische Elemente in C?

Warum erhalte ich „Undefinierte Verweise' auf statische Elemente in C?

Mary-Kate Olsen
Freigeben: 2024-12-09 00:13:10
Original
296 Leute haben es durchsucht

Why Do I Get

Undefinierte Referenzen auf statische Elemente verstehen

Beim Arbeiten mit Klassen, die statische Datenelemente enthalten, können Fehler im Zusammenhang mit „undefinierten Referenzen“ auftreten. Dies kann auf ein mangelndes klares Verständnis von Deklarationen und Definitionen zurückgeführt werden.

Deklarationen und Definitionen

In einer Klassendeklaration werden statische Datenelemente normalerweise deklariert, aber nicht definiert . Diese Erklärung legt die Existenz und den Typ des Mitglieds fest. Sofern es jedoch nicht in einer Weise verwendet wird, die eine Adresse erfordert, ist eine spezifische Definition noch nicht erforderlich.

Um eine Definition für ein statisches Datenelement bereitzustellen, sollte es in einer separaten Quelldatei abgelegt werden, die die Implementierung enthält für die Klasse. Die Definition besteht aus dem Namen des Mitglieds, dem der class :: Scope-Operator vorangestellt ist, gefolgt von einem optionalen Initialisierer.

Ausnahme für Konstanten

Für statische Mitglieder, die const sind Bei Integral- oder Aufzählungstypen kann in der Klassendeklaration ein Initialisierer bereitgestellt werden. Dadurch entfällt nicht die Notwendigkeit einer Definition in der Quelldatei, es wird jedoch sichergestellt, dass die Definition keinen Initialisierer enthält.

Vorlagen

Statische Datenmitglieder der Klasse Vorlagen sind unterschiedlich definiert. Die Definition ist zusammen mit der Klassendeklaration in der Header-Datei enthalten. Diese Ausnahme von der One-Definition-Regel ermöglicht, dass das statische Element einmal für jede Instanziierung der Vorlage definiert wird.

Andere Verwendungen von statischen Elementen

Über statische Datenelemente hinaus: static kann auch auf Funktionen und Objekte in einem Nicht-Klassen-Kontext angewendet werden, wo es unterschiedliche Bedeutungen angibt:

  • Statisch Funktionen:Innerhalb eines Funktionsbereichs deklariert, behalten diese Funktionen ihre Werte zwischen Funktionsaufrufen.
  • Statische Objekte:In einem Namespace-Bereich deklariert, verfügen diese Objekte über eine interne Verknüpfung.

Wenn Sie diese Konzepte verstehen, können Sie statische Datenelemente in C effektiv verarbeiten und Fehler im Zusammenhang mit undefinierten Referenzen vermeiden.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich „Undefinierte Verweise' auf statische Elemente in C?. 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