Maison > développement back-end > C++ > Comment définir une constante statique privée `std::string` en C ?

Comment définir une constante statique privée `std::string` en C ?

Linda Hamilton
Libérer: 2024-12-27 09:36:13
original
253 Les gens l'ont consulté

How to Define a Private Static Constant `std::string` in C  ?

Définir un membre de données statique de type const std::string

En C, définir une constante statique privée pour une classe peut être difficile lors de l'utilisation du type standard const std::string. Les messages d'erreur rencontrés indiquent que la méthode utilisée n'est pas conforme à la norme ISO C.

Pour définir une constante littérale privée sans utiliser de directive #define, considérez les deux approches suivantes :

Variables en ligne (C 17 et versions ultérieures)

Depuis C 17, les variables en ligne peuvent être utilisées pour déclarer des données membres statiques avec une constante initialiseurs. Cela se fait en ajoutant le mot-clé inline avant la déclaration statique dans la définition de classe :

class A {
private:
  inline static const std::string RECTANGLE = "rectangle";
};
Copier après la connexion

Définition en dehors de la définition de classe (avant C 17)

Avant C 17, les membres statiques doivent être définis en dehors de la définition de classe et initialisés séparément. La déclaration statique dans la définition de classe est effectuée sans initialiseur :

class A {
private:
  static const std::string RECTANGLE;
};

// In an implementation file
const std::string A::RECTANGLE = "rectangle";
Copier après la connexion

Notez que la syntaxe d'initialisation directe des membres statiques avec des types non intégraux dans les définitions de classe n'est autorisée qu'avec 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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal