„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie definiere ich statische const std::string-Mitglieder in C++?

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

Veröffentlicht am 21.12.2024
Durchsuche:601

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

Definieren statischer Datenmember vom Typ const std::string

Definieren eines privaten statischen Const-Members vom Typ std::string in C innerhalb einer Klasse, die die klasseninterne Initialisierung verwendet, wie unten gezeigt, ist nicht mit dem C-Standard kompatibel:

class A {
   private:
      static const string RECTANGLE = "rectangle";
}

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

C 17 Inline-Variablen

Seit C 17 können Sie Inline-Variablen für verwenden diesen Zweck. 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";
};

Vor-C 17-Ansatz

Vor C 17 müssen Sie das statische Element 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;
};
// In one of the implementation files
const string A::RECTANGLE = "rectangle";

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

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3