Heim > Backend-Entwicklung > C++ > Wie definiere ich eine private statische Konstante „std::string' in C?

Wie definiere ich eine private statische Konstante „std::string' in C?

Linda Hamilton
Freigeben: 2024-12-27 09:36:13
Original
250 Leute haben es durchsucht

How to Define a Private Static Constant `std::string` in C  ?

Definieren eines statischen Datenelements vom Typ const std::string

In C kann das Definieren einer privaten statischen Konstante für eine Klasse eine Herausforderung sein bei Verwendung des Standardtyps const std::string. Die aufgetretenen Fehlermeldungen weisen darauf hin, dass die verwendete Methode nicht mit dem ISO-C-Standard kompatibel ist.

Um eine private Literalkonstante ohne Verwendung einer #define-Direktive zu definieren, ziehen Sie die folgenden zwei Ansätze in Betracht:

Inline-Variablen (C 17 und höher)

Seit C 17 können Inline-Variablen verwendet werden, um statische Datenelemente mit Konstanten zu deklarieren Initialisierer. Dies geschieht durch Hinzufügen des Inline-Schlüsselworts vor der statischen Deklaration innerhalb der Klassendefinition:

class A {
private:
  inline static const std::string RECTANGLE = "rectangle";
};
Nach dem Login kopieren

Definition Outside Class Definition (Prevor to C 17)

Prior to C 17, statische Mitglieder müssen außerhalb der Klassendefinition definiert und separat initialisiert werden. Die statische Deklaration innerhalb der Klassendefinition erfolgt ohne Initialisierer:

class A {
private:
  static const std::string RECTANGLE;
};

// In an implementation file
const std::string A::RECTANGLE = "rectangle";
Nach dem Login kopieren

Beachten Sie, dass die Syntax der direkten Initialisierung statischer Mitglieder mit nicht-integralen Typen innerhalb von Klassendefinitionen nur mit Integral- und Enum-Typen zulässig ist.

Das obige ist der detaillierte Inhalt vonWie definiere ich eine private statische Konstante „std::string' 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