Référence non définie à une variable statique en C
Lorsque vous travaillez avec des variables statiques en C, les développeurs rencontrent souvent l'erreur "référence non définie à une variable statique ". Cet article explore ce problème et propose une solution sans utiliser de méthode statique.
Problème :
Considérez le code suivant :
class Helloworld { public: static int x; void foo(); }; void Helloworld::foo() { Helloworld::x = 10; };
Ceci le code déclenche une erreur "référence non définie" car la variable statique x est référencée dans une méthode non statique foo(), mais il lui manque un définition.
Solution :
Pour résoudre ce problème, il est essentiel de fournir une définition de la variable membre statique x en dehors de la définition de la classe. Ceci peut être réalisé comme suit :
class Helloworld { public: static int x; void foo(); }; // Define the static variable outside the class int Helloworld::x = 0; void Helloworld::foo() { Helloworld::x = 10; };
En spécifiant la valeur initiale comme 0 ou en la laissant indéfinie, x sera initialisé à zéro. Alternativement, une valeur initiale plus appropriée peut être attribuée.
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!