Définition de membres de données statiques de type const std::string
En C , définition d'un membre const statique privé de type std::string au sein d'une classe utilisant l'initialisation en classe, comme indiqué ci-dessous, n'est pas conforme à la norme C :
class A { private: static const string RECTANGLE = "rectangle"; }
Cependant, C propose des approches alternatives pour obtenir cette fonctionnalité.
Variables en ligne C 17
Depuis C 17, vous pouvez utiliser des variables en ligne pour ce but. Une variable inline est une fonctionnalité C 17 qui permet la déclaration d'une variable statique directement dans la définition de classe, avec le mot-clé inline. Par exemple :
// In a header file (if necessary) class A { private: inline static const string RECTANGLE = "rectangle"; };
Approche pré-C 17
Avant C 17, vous devez définir le membre statique en dehors de la définition de classe et y fournir l'initialiseur. Voici un exemple :
// In a header file (if necessary) class A { private: static const string RECTANGLE; };
// In one of the implementation files const string A::RECTANGLE = "rectangle";
Remarque : La syntaxe d'initialisation que vous avez tentée (dans la définition de classe) n'est prise en charge que pour les types intégraux et enum.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3