Maison > développement back-end > C++ > Comment définir des membres statiques const std::string en C ?

Comment définir des membres statiques const std::string en C ?

Linda Hamilton
Libérer: 2024-12-19 03:48:09
original
1063 Les gens l'ont consulté

How to Define Static const std::string Members in 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";
}
Copier après la connexion

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";
};
Copier après la connexion

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;
};
Copier après la connexion
// In one of the implementation files
const string A::RECTANGLE = "rectangle";
Copier après la connexion

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!

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