Heim > Backend-Entwicklung > C++ > Wie definiere ich statische const std::string-Mitglieder in C?

Wie definiere ich statische const std::string-Mitglieder in C?

Linda Hamilton
Freigeben: 2024-12-19 03:48:09
Original
973 Leute haben es durchsucht

How to Define Static const std::string Members in C  ?

Statische Datenelemente vom Typ const std::string definieren

In C ein privates statisches Const-Element vom Typ std::string definieren innerhalb einer Klasse, die die klasseninterne Initialisierung verwendet, wie unten gezeigt, ist nicht mit C kompatibel Standard:

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

C bietet jedoch alternative Ansätze, um diese Funktionalität zu erreichen.

C 17 Inline-Variablen

Seit C 17 ist dies möglich Verwenden Sie zu diesem Zweck Inline-Variablen. Eine Inline-Variable ist eine C 17-Funktion, die die Deklaration einer statischen Variablen direkt innerhalb der Klassendefinition mit dem Schlüsselwort inline ermöglicht. Zum Beispiel:

// In a header file (if necessary)
class A {
private:
  inline static const string RECTANGLE = "rectangle";
};
Nach dem Login kopieren

Vor-C 17-Ansatz

Vor C 17 müssen Sie das statische Mitglied außerhalb der Klassendefinition definieren und dort den Initialisierer bereitstellen. Hier ist ein Beispiel:

// In a header file (if necessary)
class A {
private:
  static const string RECTANGLE;
};
Nach dem Login kopieren
// In one of the implementation files
const string A::RECTANGLE = "rectangle";
Nach dem Login kopieren

Hinweis: Die von Ihnen versuchte Initialisierungssyntax (innerhalb der Klassendefinition) wird nur für Integral- und Enum-Typen unterstützt.

Das obige ist der detaillierte Inhalt vonWie definiere ich statische const std::string-Mitglieder 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