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.
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