Heim > Backend-Entwicklung > C++ > Warum erhalte ich in C den Fehler „Undefinierter Verweis auf statischen constexpr char[]'?

Warum erhalte ich in C den Fehler „Undefinierter Verweis auf statischen constexpr char[]'?

DDD
Freigeben: 2024-12-17 03:42:25
Original
176 Leute haben es durchsucht

Why Do I Get an

Unerwarteter Fehler: „Undefinierter Verweis auf statischen constexpr char[]“ in der Klassendefinition

Es tritt ein „undefinierter Verweis auf statischen constexpr char[] auf ]“-Fehler beim Definieren eines statischen const char-Arrays innerhalb einer Klasse kann verwirrend sein. Lassen Sie uns das Problem untersuchen und die Lösung erkunden.

Wie in der Fehlermeldung hervorgehoben, erwartet der Compiler eine Definition für das statische Mitglied. Im bereitgestellten Codeausschnitt haben Sie die Deklaration und den Initialisierer in die Klassendefinition eingefügt, aber Sie haben die separate Definition nicht in der CPP-Datei bereitgestellt.

Um dieses Problem zu beheben, führen Sie die folgenden Schritte aus:

  1. Geben Sie die Definition an:

Fügen Sie in der .cpp-Datei Folgendes hinzu: die Definition durch Deklaration des statischen Elements ohne den Initialisierer, wie unten gezeigt:

constexpr char foo::baz[];
Nach dem Login kopieren
  1. Deklaration und Initialisierer intakt halten:

Pflege die Klassendeklaration und der Initialisierer für das statische Mitglied in der .hpp-Datei ist.

Erklärung:

In C wird statischen Mitgliedern während der Kompilierung Speicher zugewiesen und von allen Instanzen der Klasse gemeinsam genutzt. Beim Definieren eines statischen const char-Arrays müssen sowohl die Deklaration als auch der Initialisierer in der Header-Datei (.hpp) enthalten sein. Allerdings muss die Definition (ohne Initialisierer) separat in der Implementierungsdatei (.cpp) bereitgestellt werden, um das Verknüpfungsproblem zu beheben. Dadurch wird sichergestellt, dass während der Verknüpfung auf die Definition für das statische Mitglied zugegriffen werden kann, wodurch der Fehler „Undefinierte Referenz“ behoben wird.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich in C den Fehler „Undefinierter Verweis auf statischen constexpr char[]'?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage