Maison >développement back-end >C++ >Comment définir des membres statiques const std::string en C ?
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 à cette fin. 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.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!