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 classe et fournissez l'initialiseur dans un fichier d'implémentation distinct :
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.
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