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 :

Acceder à un getter sur une autre classe


Sujet :

C++

  1. #1
    Membre régulier
    Inscrit en
    Décembre 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 483
    Points : 105
    Points
    105
    Par défaut Acceder à un getter sur une autre classe
    Bonjour,

    Je ne parviens pas à accéder à un getter qui retourne un pointeur sur une autre classe. Je ne suis peut-être pas clair.

    Le soucis se situe au niveau de getPremierArcSuivant() et getPremierArcPrecedent() car je ne peux pas faire sommet->getPremierArcSuivant() ce qui me permettrai d'accéder à monArc.

    En gros, je n'arrive pas à obtenir la valeur de mes 2 pointeurs depuis la classe C_sommet (je m'y prend peut--être mal...)


    merci

  2. #2
    Membre émérite

    Inscrit en
    Mai 2008
    Messages
    1 014
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 1 014
    Points : 2 252
    Points
    2 252
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    C_arc SOMgetPremierArcSuivant(); //getter
    C_arc C_sommet::SOMgetPremierArcSuivant()
    {
     return *pSOMpremierArcSuivant;
    }
    Ce code renvoie une copie de l'objet de type C_arc pointé par pSOMpremierArcSuivant.
    J'ai plutôt l'impression que tu cherches à renvoyer une copie du pointeur pSOMpremierArcSuivant de type C_arc* :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    C_arc* SOMgetPremierArcSuivant(); //getter
    C_arc* C_sommet::SOMgetPremierArcSuivant()
    {
       return pSOMpremierArcSuivant;
    }

  3. #3
    Membre régulier
    Inscrit en
    Décembre 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 483
    Points : 105
    Points
    105
    Par défaut
    Exact, merci.

    Cependant, je ne peux toujours pas faire ce que je souhaite.

    Lorsque je fais sommetSource->SOMgetValuation() pas de problème (pour l'autre getter aussi)... mais les 2 getter sur un C_arc, Visual studio ne me le propose pas.

  4. #4
    Membre régulier
    Inscrit en
    Décembre 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 483
    Points : 105
    Points
    105
    Par défaut
    Je galère toujours sur mon problème...

    et je me demande si ce problème vient vraiment des pointeurs ou non? ou si c'est juste une erreur de syntaxe... (si je fais "sommetSource->", mon IDE ne me propose pas la fonction SOMgetPremierArcSuivant() car elle est de type C_arc?)

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 130
    Points : 33 063
    Points
    33 063
    Billets dans le blog
    4
    Par défaut
    Bonsoir,

    l'éditeur ne la propose pas, et alors ?
    Ecris-la, compile et vérifie le message d'erreur.

    Tes getter n'en sont pas vraiment puisqu'ils retournent une copie de l'élément, en retournant le pointeur ou une référence ça sera sûrement bien mieux.

  6. #6
    Membre régulier
    Inscrit en
    Décembre 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 483
    Points : 105
    Points
    105
    Par défaut
    Tes getter n'en sont pas vraiment puisqu'ils retournent une copie de l'élément, en retournant le pointeur ou une référence ça sera sûrement bien mieux.
    En corrigeant mon code suivant ce qu'Arzar m'a dit précédemment, cela n'est pas bon ?

  7. #7
    Membre expérimenté

    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 685
    Points : 1 418
    Points
    1 418
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    private:
    	C_arc * pSOMpremierArcSuivant;
    	C_arc * pSOMpremierArcPrecedent;
    les getters proposés par Arzar :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    C_arc * C_Sommet::SOMgetPremierArcSuivant()
    {
            return pSOMpremierArcSuivant;
    }
    Ainsi tu accèdes sans ambiguïté à ton pointeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sommetSource->SOMgetPremierArcSuivant();
    et je me demande si ce problème vient vraiment des pointeurs ou non? ou si c'est juste une erreur de syntaxe... (si je fais "sommetSource->", mon IDE ne me propose pas la fonction SOMgetPremierArcSuivant() car elle est de type C_arc?)
    Ce n'est pas parce que l'auto-complétion ne fonctionne pas momentanément qu'il y a un souci.

    Mais tu peux toujours t'en assurer en compilant et en vérifiant que t'as pas une erreur de syntaxe (SOMgetPremierArcSuivant(); dans le header et SOMgetOremierArcSuivant(); dans les sources, ou encore tu as pu omettre C_Sommet dans la définition de ta méthode : C_arc* ma méthode(){...} au lieu de C_Arc* C_Sommet::ma méthode(){...}.


    Entre parenthèse ce n'est qu'un résumé des réponses précédentes, mais la réponse à ton problème est forcément dedans.

    Cordialement,

  8. #8
    Membre régulier
    Inscrit en
    Décembre 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 483
    Points : 105
    Points
    105
    Par défaut
    Effectivement, même si mon IDE ne me le propose pas, cela fonctionne

    Merci à vous

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

Discussions similaires

  1. [Cocoa] Acceder à l'instance d'une autre class
    Par hihcam dans le forum Apple
    Réponses: 0
    Dernier message: 11/07/2011, 13h02
  2. Return une liste sur une autre classe
    Par b-yannick dans le forum C#
    Réponses: 1
    Dernier message: 11/06/2010, 20h37
  3. addActionListener sur une autre classe
    Par ceetix dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 16/04/2010, 19h26
  4. Acceder à un object qui se trouve dans une autre classe
    Par ceres02 dans le forum AWT/Swing
    Réponses: 8
    Dernier message: 08/02/2006, 13h29
  5. Réponses: 5
    Dernier message: 02/09/2004, 16h17

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