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
Linda Hamiltonoriginal
2024-12-19 03:48:09976parcourir

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";
}

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!

Déclaration:
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