Maison > développement back-end > C++ > Comment puis-je définir des membres de données de chaîne constante statique privée en C ?

Comment puis-je définir des membres de données de chaîne constante statique privée en C ?

DDD
Libérer: 2024-12-25 04:20:14
original
306 Les gens l'ont consulté

How Can I Define Private Static Constant String Data Members in C  ?

Réaliser des membres de données de chaîne constante statique : un guide complet

Dans la poursuite de la définition de chaînes constantes statiques privées pour les classes, telles que les usines de formes, vous pouvez rencontrer un obstacle avec les compilateurs C. Cela est dû aux restrictions imposées par la norme C. Pour surmonter ce défi et établir un membre de données de chaîne const statique, envisagez les solutions suivantes :

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

L'utilisation de variables en ligne, introduites dans C 17, fournit une solution pratique et efficace pour définir des variables const statiques :

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

Définition et initialisation externes

Pré-C 17 versions nécessitent de définir le membre statique en dehors de la classe et de fournir l'initialiseur séparément :

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

Il est important de noter que la syntaxe avec un initialiseur à l'intérieur de la définition de classe est réservée uniquement aux types intégraux et enum. .

Un mot sur #define

Bien que #define puisse sembler tentant pour définir des constantes, il introduit un niveau de une visibilité mondiale qui n’est peut-être pas souhaitable. Par exemple, si la constante est définie dans un fichier d'en-tête, elle deviendra globalement accessible à toutes les parties du programme. Cela peut conduire à des conflits de noms avec différentes implémentations définissant la même constante, entre autres problèmes potentiels.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal