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"; }
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"; };
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; };
// 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.
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!