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 :

Impossible d'accéder à une variable


Sujet :

C++

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 59
    Points : 11
    Points
    11
    Par défaut Impossible d'accéder à une variable
    Bonjour!
    Mon problème est très simple à expliquer mais je ne vois pas du tout comment le résoudre.

    Voici une ébauche de mon code, d'une certaine façon:

    Fich1.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #include stdio.h>
    #include "ClassToto.h"
    class ACE
    {
    private:
              ClassToto * var1;
    public:
        ACE();
        ~ACE();
        ClassToto * getVar () {return var1;}
     
    };
    Fich1.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ACE::ACE()
    {
        var1 = new ClassToto ();
    }
    ACE::~ACE()
    {
        delete var1;
    }
    J'ai fait un clean du projet, ensuite un Rebuild mais à la compilation il me dit que ma variable var1 n'existe pas. Pourtant dans ma classe ACE j'ai d'autres varaiables (mais pas de type ClassToto) avec lesquelles je ne rencontre aucun problème. Même quand je fais un simple int i; dans la partie public mais rien n'y fait.

    Pouvez-vous m'aidez svp!
    merci d'avance

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 45
    Points : 50
    Points
    50
    Par défaut
    Elle est en private c'est normal.

    soit il la passe en protected ou public
    soit il cree une methode permetant de la recevoir:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    int ta_classe::get_var1()
    {
        return(a.var1);
    }

  3. #3
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    @okaido: Ça ne changera rien au destructeur: Il est supposé avoir accès aux variables private...

    Le code minimal que tu as posté suffit-il à reproduire le problème ? (en supposant qu'on ait la définition de la classe ClassToto à portée de main)

    PS:
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 45
    Points : 50
    Points
    50
    Par défaut
    Oui, je viens de voir. Mais il a modifie sont messqge en cors de route

    Tu as raison, je ne vois pas pourquoi ca ne marcherai pas ????
    Peux etre une variable globale appeler var1?? ?? Mais ca m'etonnerai car sont appelle n'ai pas prioritaire sur les variables local du meme nom.


    -----------------------------------
    Ce code ne suffit pas pour repondre a ton probleme.

    comment compile tu ton programme. dans quel fichier sont place ton code

  5. #5
    Membre éclairé
    Avatar de Floréal
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    456
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 456
    Points : 849
    Points
    849
    Par défaut
    N'as tu pas tout simplement oublié d'inclure le fichier .h dans ton fichier .cpp?
    Je suis d'ailleurs surpris que ton compilateur ne t'agresse pas en te disant qu'il ne trouve pas la déclaration de la classe ACE.
    Ancien membre du projet "Le Dernier Âge".

  6. #6
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 59
    Points : 11
    Points
    11
    Par défaut Je trouvé la solution
    Il m'a suffit de supprimer le fichier .ncb et de relancer ma solution.

    C'était un bug de visual je pense. Intellisense faisait des siennes.

    Merci quand même!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Eclipse RCP] accéder à une variable globale
    Par fabrisss dans le forum SWT/JFace
    Réponses: 2
    Dernier message: 10/01/2007, 08h37
  2. Réponses: 4
    Dernier message: 13/12/2006, 16h10
  3. accèder une $variable en bas de page !
    Par Dsphinx dans le forum Langage
    Réponses: 11
    Dernier message: 24/11/2006, 10h23
  4. accéder à une variable déclarée dans un autre fichier
    Par sg.forums dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 31/10/2006, 09h20
  5. [PERL] accéder à une variable d'une autre classe
    Par LE NEINDRE dans le forum Langage
    Réponses: 8
    Dernier message: 11/01/2006, 17h06

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