Maison >développement back-end >C++ >Pourquoi est-ce que j'obtiens une erreur « Référence non définie » lors de l'accès à une variable statique dans une méthode C non statique ?

Pourquoi est-ce que j'obtiens une erreur « Référence non définie » lors de l'accès à une variable statique dans une méthode C non statique ?

DDD
DDDoriginal
2024-12-15 15:36:11330parcourir

Why Do I Get an

Référence non définie à une variable statique en C

Lorsqu'ils tentent d'accéder à une variable statique dans une méthode non statique d'une classe, les développeurs peuvent rencontrez l'erreur "référence non définie". Pour résoudre ce problème, il est important de fournir une définition de la variable statique en dehors de la déclaration de classe.

Dans l'extrait de code fourni :

class Helloworld{
  public:
     static int x;
     void foo();
};

void Helloworld::foo(){
     Helloworld::x = 10;
};

La variable statique x est déclarée dans le classe mais manque de définition. Pour résoudre ce problème, nous pouvons ajouter la ligne suivante en dehors de la définition de la classe :

int Helloworld::x;

Cela fournit une définition pour x, permettant à la méthode foo() d'y accéder sans rencontrer d'erreur de référence non définie. Il est important de noter que la valeur par défaut des variables statiques est zéro, donc un initialiseur explicite peut être fourni si vous le souhaitez.

En suivant ces étapes, les développeurs peuvent accéder efficacement aux variables statiques au sein de méthodes non statiques, garantissant ainsi fonctionnalité de code et éviter les erreurs de référence non définies.

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