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
Linda HamiltonOriginal
2024-12-27 09:36:13253Durchsuche

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";
};

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";

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!

Stellungnahme:
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