En C, l'initialisation d'un membre de données statiques de type const std::string directement dans la définition de classe est pas autorisé. Au lieu de cela, il existe deux options pour définir de tels membres de données :
Utilisez une variable en ligne, qui définit et initialise le membre statique dans la définition de classe :
class A { private: inline static const string RECTANGLE = "rectangle"; };
Définissez le membre statique en dehors de la définition de la classe et fournissez l'initialiseur dans une implémentation distincte file :
Fichier d'en-tête
class A { private: static const string RECTANGLE; };
Fichier d'implémentation
const string A::RECTANGLE = "rectangle";
La syntaxe d'initialisation des données membres statiques dans la définition de classe n'est prise en charge que pour les types intégraux et enum. Pour les types non intégraux comme const std::string, cette approche n'est pas valide.
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!