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 :

Probl�me d'acc�s � un objet!


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    127
    D�tails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 127
    Par d�faut Probl�me d'acc�s � un objet!
    Salut a tous!!!

    J'ai un petit probl�me, pour acceder un objet qui est dans un autre objet en C++, c'est bien ca que je dois faire non?????

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
     
    monObjet::ObjetContenu->GetData();
    En r�alit� le pointeurs sur mon objet ObjetContenu est private ce qui fait que c'est logique que je ne puisse y acc�der comme ci-dessus.
    Mais j'ai fais un accesseur qui renvoit la r�f�rence � ObjetContenu.

    Du type:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
    //Dans Code de ObjetContenu
    ObjetContenu* GetObjetContenu_Ref()
    {
         return this;
    }
    et dans monObjet j'aurai:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    ObjetContenu* GetObjetContenu()
    {
         return ObjetContenu->GetObjetContenu_Ref();
    }
    Mais d�j� ici, ca passe pas la compilation, le compilateur me dit qu'il ne conna�t pas ObjetContenu [undeclared identifier] alors qu'il est d�clar�...???

    alors que normalement je devrais pouvoir l'acceder comme ca! non????

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
     
    (monObjet->GetObjetContenu())->GetObjetContenu_Ref()

  2. #2
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Houl�, 'doit y avoir un beau bazar dans ta t�te, on n'y comprend rien.

    Tu peux nous montrer un exemple concret et global de ce que tu cherchez � faire ?
    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.

  3. #3
    Membre Expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    D�tails du profil
    Informations personnelles :
    �ge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Par d�faut
    Je ne vois pas tr�s bien l'int�r�t de la fonction :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    //Dans Code de ObjetContenu
    ObjetContenu* GetObjetContenu_Ref()
    {
         return this;
    }
    En effet, pour l'utiliser, il faut d�j� avoir l'objet contenu (ou une r�f�rence ou un pointeur dessus).

    Dans ton objet principal, tu pourrais donc remplacer :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    ObjetContenu* GetObjetContenu()
    {
         return ObjetContenu->GetObjetContenu_Ref();
    }
    par :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    ObjetContenu* GetObjetContenu()
    {
         return ObjetContenu;
    }
    le deuxi�me "ObjetContenu" (dans le return) �tant ton pointeur sur l'objet contenu...

    J'avoue que je m�lange un peu les pinceaux entre tous ces �l�ments qui ont le m�me nom, que ce soit des objets, des pointeurs ou des classes...

    Est-ce que tu pourrais nous montrer la d�claration de ta classe un peu plus compl�te ?

  4. #4
    Membre chevronn� Avatar de Mayti4
    Inscrit en
    F�vrier 2004
    Messages
    442
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2004
    Messages : 442
    Par d�faut
    et dans monObjet j'aurai:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    ObjetContenu* GetObjetContenu()
    {
         return ObjetContenu->GetObjetContenu_Ref();
    }
    Non, tu auras:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    ObjetContenu* monObjet::GetObjetContenu()
    {
         return MonObjetContenu;
    }
    Avec ObjetContenu *MonObjetContenu; dans la partie private de monObjet.

  5. #5
    Membre confirm�
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    127
    D�tails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 127
    Par d�faut
    OK c'est vrai vous avez raison on comprend rien comme ca...
    alors j ai fais un dessin c'est plus simple.

    La question est dans le fichier aussi...
    Fichiers attach�s Fichiers attach�s

  6. #6
    R�dacteur
    Avatar de Laurent Gomila
    Profil pro
    D�veloppeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par d�faut
    Le .doc c'est un peu lourd pour une si petite explication, non ?

    Alors dans le main, j�instancie foo, dans le constructeur de foo j�instancie FooInt et dans le constructeur de FooInt j�instancie FooInt2.
    En fait, l�objet s imbrique les uns dans les autres.

    Ma question est comment acc�der aux les variables de FooInt2 depuis Main ????
    Tr�s simple :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    mon_foo.get_foo_int().get_foo_int_2().get_whatever();
    Je sch�matise, mais c'est juste pour montrer que si tu as besoin d'une variable et bien tu fais juste un accesseur...

    Par ailleurs, avoir besoin d'une variable qui se trouve imbriqu�e 3 niveaux plus bas, �a me semble limite. Le traitement devrait peut-�tre �tre �tal� entre les diff�rentes classes interm�diaires.

  7. #7
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Euh, tu sais, j'ai vu bien pire...
    Dans la bo�te o� je bosse, il y a un programme en MFC o� l'on trouve � un certain moment:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    m_pParent->GetParent()->GetParent()->SendMessage(...)
    Je te laisse imaginer la gal�re pour retrouver le traitement du message sans utiliser le d�bogueur...
    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.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Probl�me acc�s � un objet depuis un SwingWorker
    Par mrboliboli dans le forum EDT/SwingWorker
    R�ponses: 6
    Dernier message: 24/04/2015, 15h50
  2. probl�me d'acces aux attributs d'un objet [arduino].
    Par Luke spywoker dans le forum D�buter
    R�ponses: 11
    Dernier message: 18/09/2013, 20h02
  3. [D�butant] Probl�me d'acc�s � un objet � partir d'un thread
    Par ILP dans le forum C#
    R�ponses: 3
    Dernier message: 07/12/2012, 23h50
  4. R�ponses: 1
    Dernier message: 23/03/2012, 15h41
  5. R�ponses: 1
    Dernier message: 16/10/2009, 13h23

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