Maison >développement back-end >C++ >Pourquoi est-ce que j'obtiens des « références non définies » lors de l'utilisation de membres de classe statiques en C ?
Références non définies aux membres de classe statiques
En C, les membres statiques définis dans les classes nécessitent une gestion appropriée pour éviter les erreurs de compilation.
Raison des références non définies
Membres statiques, bien qu'ils soient déclarés au sein de la classe définitions, ne sont pas automatiquement définies, sauf si cela est explicitement fait ailleurs. En effet, les déclarations diffèrent des définitions en C . Une déclaration présente simplement le membre, tandis qu'une définition alloue de la mémoire et fournit une valeur initiale.
Exemple
Considérons la classe suivante avec un membre statique non déclaré :
class Example { static bool exampleStaticMember; };
Tenter d'utiliser exampleStaticMember sans le définir entraînera des "références non définies" erreurs.
Exigences de définition
Pour résoudre ce problème, le membre statique doit être explicitement défini, généralement dans le fichier source (.cpp) qui contient les définitions de classe. La définition déclare simplement à nouveau le membre avec son type de données et un point-virgule (';').
bool Example::exampleStaticMember;
Cas particuliers
Autres utilisations statiques
Notez que le mot-clé static a des significations différentes lorsqu'il est appliqué en dehors de classes :
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!