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 :

probleme avec des accesseurs


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Août 2010
    Messages : 126
    Par défaut probleme avec des accesseurs
    bonjour je vous fait part d'un probleme que je n'arrive pas a résoudre et ne comprend d'ailleurs pas pourquoi ces accesseurs ne fonctionnent pas comme ils le devraient.

    J'ai une classe appelé Livre qui a pour attribut :
    - titre
    -libelle
    -prix
    - unAuteur (de la classe auteur)

    et comme méthodes, les accesseurs de chacun

    la classe auteur a comme attributs ceux de la classe Personne dont'il hérite, il a donc les accesseurs et attribut de la classe Personne c'est a dire:
    -nom
    - prenom

    et comme méthodes
    getPrenom()
    setPrenom()
    getNom()
    setNom()

    Le probleme qui ce pose et que lorsque je souhaite affecter une valeur a nom comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     leLivre.getAuteur().setNom("peterson");
    cela ne marche pas, j'ai toujours la valeur par defaut.
    Je ne comprend pas car leLivre.getAuteur() retourne l'attribut unAuteur de la classe Auteur et ensuite je fait .setNom() afin d'affecter une valeur a l'attribut nom de l'objet de la classe Auteur (qui hérite public de personne).

    Par contre quand je fais sa :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Auteur x;
            x = leLivre.getAuteur();
            x.setNom("paterson");
            leLivre.setAuteur(x);
    la sa marche ... je ne comprend absolument pas pourquoi d'autant plus que cela revient a faire exactement ce que je veux faire mais en plus long.

    si quelqu'un a fait face a ce probleme et qu'il l'a résolu, merci à lui de me faire partager sa solution.
    Merci a tous

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 119
    Billets dans le blog
    148
    Par défaut
    Bonjour,

    J'ose deviner que c'est car getAuteur() retourne une copie (temporaire) de l'instance. Et que comme c'est une copie, vous ne changez pas l'objet qui est dans la structure.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Membre actif

    Inscrit en
    Décembre 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 18
    Par défaut
    Bonjour,

    Je crois (vue qu'on n'a pas la signature de tes méthodes) que tu fais un passage par valeur (ce qui va créer une instance temporaire de la classe) et non pas un passage par référence (qui te permet de modifier l'instance passée comme paramètre à tes méthodes).

    Tu peux consulter le FAQ pour plus de détails.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Août 2010
    Messages : 126
    Par défaut
    vous avez tous deux raison : je n'ai pas fais attention.
    PS et oui je regarderai la fac promis !

    encore merci

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

Discussions similaires

  1. Probleme avec des structures
    Par lenectar dans le forum C
    Réponses: 17
    Dernier message: 30/12/2005, 09h53
  2. [FLASH MX] Probleme avec des liens.
    Par maxcmoi dans le forum Flash
    Réponses: 2
    Dernier message: 12/11/2005, 11h11
  3. Probleme avec des socket !
    Par Ptimath44 dans le forum Réseau
    Réponses: 11
    Dernier message: 31/10/2005, 18h11
  4. Probleme avec des pointeurs...
    Par barucca dans le forum C++
    Réponses: 5
    Dernier message: 23/08/2005, 21h05
  5. Problemes avec des cellules vides
    Par arsgunner dans le forum ASP
    Réponses: 7
    Dernier message: 14/06/2004, 08h42

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