IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C++ Discussion :

Déclaration et utilisation de variable globale


Sujet :

C++

  1. #1
    Membre averti Avatar de snoopy69
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    737
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 737
    Points : 395
    Points
    395
    Par défaut Déclaration et utilisation de variable globale
    Bonjour à tous,

    Je développe avec un PC équipe de Windows XP SP3 et de Visual C++ 6.0

    J'ai du reprendre un projet existant fait par un de mes anciens collègue et je me retrouve face à un problème de déclaration de variable globale ...

    Voici la présentation de mon code :

    CLASSE 1 : (dans le fichier TTest.cpp)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void TTest::OnBtnStopTimer()
    {
        int i_valCompteur = 90;
    }
    CLASSE 2 : (dans le ficher Display.cpp)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void CDisplay::DisplayAxe(CDC &memDC)
    {
        szTmp = DblToStr(dNum);
    }
    FONCTION DdlToStr : (dans le fichier Display.cpp)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CString CDisplay::DblToStr(double num)
    {
        CString szTmp;
     
    // J'AIMERAIS RECUPERER LE CONTENU DE  LA VARIABLE "i_valCompteur " ICI POUR L'UTILISER COMME SUIT :
    // szTmp.Format( i_valCompteur  , num); A LA PLACE DE LA LIGNE CI-DESSOUS
        szTmp.Format("%.6f", num);
        return (szTmp);
    }
    J'ai vu dans la FAQ à ce lien : http://dotnet.developpez.com/faq/cpp...ariableGlobale comment il fallait faire pour déclarer une classe GLOBALE.

    Je me suis donc exécuté comme suit :
    CLASSE 1 : (dans le fichier TTest.cpp)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void TTest::OnBtnStopTimer()
    {
        VariableGlobale::i_nbrCaracResol = 1;
    }
    CLASSE 2 DECLARATION GLOBALE : (dans le fichier TTest.cpp)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    class VariableGlobale{
    public:static  int i_nbrCaracResol;
    };
    CLASSE 3 : (dans le ficher Display.cpp)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void CDisplay::DisplayAxe(CDC &memDC)
    {
        szTmp = DblToStr(dNum);
    }
    FONCTION DdlToStr : (dans le fichier Display.cpp)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CString CDisplay::DblToStr(double num)
    {
        CString szTmp;
       Int test_variable;
     
        test_variable = VariableGlobale::i_nbrCaracResol;
        szTmp.Format("%.6f", num);
        return (szTmp);
    }
    Voici l'erreur que mon compiltateur me retourne :
    C:\...\Display.cpp(96) : error C2653: 'VariableGlobale' : is not a class or namespace name
    C:\...\\Display.cpp(97) : error C2065: 'i_nbrCaracResol' : undeclared identifier
    TTest.cpp
    Je ne comprends pas bien pourquoi il ne reconnait pas ma variable qui est pourtant bien "PUBLIC" ...

    Est-ce que vous auriez une petite idée pour me dépanner un peu ? ...

    Merci d'avance pour vos réponses ... et salutations à vous tous ...
    ... Je me méfie de l'irrespect mais je revendique le droit à la frénésie ...

  2. #2
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Bonjour,
    Tout simplement ta classe VariableGlobale n'est déclarée et définie que dans TTest.cpp, donc le compilateur ne la connait pas dans Display.cpp.
    Il faudrait que tu la déclare dans VariableGlobale.h, la définisse dans VariableGlobale.cpp, fasse un include de VariableGlobale.h dans Display.cpp et TTest.cpp pour y accéder.

    Remarque: en vérifiant ta conception, es-tu sûr d'avoir une variable globale? L'expérience montre que l'utilisation de variable globale est génératrice de beaucoup de bugs.

Discussions similaires

  1. Réponses: 5
    Dernier message: 31/05/2006, 12h39
  2. Utilisation de variables globales en MFC
    Par beb30 dans le forum MFC
    Réponses: 6
    Dernier message: 15/05/2006, 23h57
  3. [sql] comment utiliser une variable global
    Par imedg dans le forum Oracle
    Réponses: 21
    Dernier message: 02/05/2006, 15h21
  4. Réponses: 6
    Dernier message: 07/04/2006, 01h10
  5. utilisation des variables global dans tout le projet
    Par EYENGA Joël dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 12/01/2006, 10h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo