Maison >développement back-end >C++ >Comment initialiser correctement les variables de chaîne statiques dans les classes C ?
Initialisation de chaînes statiques dans les classes C
Lors de la déclaration de fonctions membres et de variables au sein d'une classe, la portée et l'accessibilité deviennent des considérations importantes. Si vous rencontrez une situation où certaines fonctions membres n'accèdent pas directement aux objets de classe et que vous décidez de les rendre statiques, vous devrez peut-être également modifier les déclarations des variables auxquelles elles accèdent.
Problème : Initialisation Variables de chaîne statiques
Si vous avez des variables de chaîne comme celles ci-dessous dans une classe :
string RE_ANY = "([^\n]*)"; string RE_ANY_RELUCTANT = "([^\n]*?)";
Les créer Les variables const statiques garantissent qu'elles restent inchangées, mais peuvent entraîner des problèmes d'initialisation. Le compilateur peut se plaindre du fait que les variables intégrales constantes statiques ne peuvent être initialisées qu'au sein d'une classe.
Solution : initialisation externe
En guise de solution de contournement, vous pouvez initialiser ces variables de chaîne statiques en dehors de la classe dans un fichier source. Par exemple :
// Within the class class Thing { static string RE_ANY; static string RE_ANY_RELUCTANT; }; // In a source file string Thing::RE_ANY = "([^\n]*)"; string Thing::RE_ANY_RELUCTANT = "([^\n]*?)";
Attention : Distinguer les fonctions statiques et const
Il est crucial de noter que vous ne devez pas rendre statiques les fonctions membres accédant à ces chaînes, car elles vous devez toujours accéder aux membres de la classe. Pensez plutôt à en faire des fonctions const, ce qui les empêche de modifier les membres de la classe. Cela maintient l'association requise entre les fonctions et les objets de classe tout en garantissant l'immuabilité.
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!