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 :

pointeur et itérator


Sujet :

C++

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2008
    Messages : 308
    Points : 622
    Points
    622
    Par défaut pointeur et itérator
    bonjour,

    j'essaye actuellement de créer des boutons pour mon programme, on vérifie tout le temps si le bouton est cliqué et c'est le cas le bouton renvoie un chiffre associé a l'action qu'il doit exécuter ( plusieurs bouton peuvent avoir la même action)

    pour certaine action j'ai besoin de récupérer un pointeur sur le bouton cliqué.

    voici la fonction qui traite la chose:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    int checkCliquedUp(int x, int y,Object *selectedObject){
         int action=-1;
         for(std::list<Object*>::iterator iter = list.begin(); iter != list.end(); iter++ ){
              if((*iter)->isCliquedUp(x,y)){
                        selectedObject=(*iter);
                        action=(*iter)->getAction();
              }
         }
         return action;
    }
    voici comment est initialisé selectedObject:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Object* selectedObject=NULL;
    et l'appel a la fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    action=checkCliquedUp(event.motion.x,event.motion.y,selectedObject);
    le problème est que quand je clique sur un bouton sensé faire une action avec selectedObject l'action s'execute mais il semble que selectedObject soit toujours a NULL.
    donc selectedObject=(*iter); ne serait pas exécuter correctement alors que action=(*iter)->getAction(); marche très bien.

    je galère a trouver le problème... j'ai peut être oublier quelque chose? mal initialiser une variable? mauvais arguments? si vous voyer une erreur merci de me la signaler...

  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
    Si tu veux modifier la valeur de selectedObject, tu passes un pointeur ou une référence sur Object.
    Donc, si tu veux modifier l'adresse selectedObject, alors tu a besoin d'un pointeur ou d'une référence sur cette adresse:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    int checkCliquedUp(int x, int y,Object **selectedObject)
    // ou
    int checkCliquedUp(int x, int y,Object *&selectedObject)
    [EDIT]: utilises ++iter plutôt que iter++.

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2008
    Messages : 308
    Points : 622
    Points
    622
    Par défaut
    merci beaucoup!
    ça marche parfaitement maintenant.

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

Discussions similaires

  1. pointeurs
    Par ghost74 dans le forum C
    Réponses: 3
    Dernier message: 14/12/2002, 02h52
  2. Pointeur vers un tableau
    Par Nikos dans le forum C
    Réponses: 3
    Dernier message: 09/12/2002, 00h43
  3. [Turbo Pascal] Allocation et désallocation de pointeurs dans une fonction
    Par neird dans le forum Turbo Pascal
    Réponses: 13
    Dernier message: 17/11/2002, 20h14
  4. djgpp et pointeurs far -2
    Par elvivo dans le forum Autres éditeurs
    Réponses: 16
    Dernier message: 29/07/2002, 22h43
  5. djgpp et pointeurs far
    Par elvivo dans le forum C
    Réponses: 2
    Dernier message: 13/07/2002, 00h44

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