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

SL & STL C++ Discussion :

Problème avec les iterator


Sujet :

SL & STL C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    134
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 134
    Points : 69
    Points
    69
    Par défaut Problème avec les iterator
    Bonjour,

    Une question qui, je pensais, devait être posée des millions de fois, mais j'ai pas trouvé la réponses


    voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        // recuperation des cases concernees
        std::list<Case*> lCases = std::list<Case*>();
        getCaseLiees(l, c, lCases); // là on remplit la liste avec plein de Case*
     
     
        std::list<Case*>::iterator iter; // création d'un iterator pour la liste lCases
        for(iter = lCases.begin(); iter != lCases.end(); )
        {
            action( *iter->getValeur() ); // on agit en fonction des valeurs des cases contenues dans la liste.
        }
    donc je pense que mon extrait code est assez claire.
    Cependant, j'obtiens cette erreur là , et je n'arrive pas à la résoudre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    core/grille.cpp:146: error: request for member ‘supprimer_valeur’ in ‘* iter. std::_List_iterator<_Tp>::operator-> [with _Tp = Case*]()’, which is of non-class type ‘Case*’

    Ma liste lCases contient des pointeurs vers des Cases.
    Les Objets Cases ont une méthode getValeur() (qui renvoie un int) que je voudrais appelé quand je parcours la liste avec un itérator.

    Quelqu'un voit-il d'où vient l'erreur ?
    merci

  2. #2
    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 : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Ce ne serait pas plutôt (*iter)->getValeur() ? (-> est prioritaire sur *)

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Tu utilise un container de pointeur. Pourquoi ne pas mettre les objets ? Vu que tu as deja l'iterateur qui te sert de pointeur.
    Sinon, utilie while au lieu de for! ( ou est ton ++iter).
    Sinon, dans ton cas, tu as un pointeur qui pointe sur un pointeur! Donc faut faire un Double dereferencing sans oublié les parenthese!

    (*(*iter)).fonction()
    Ou
    (*iter)->fonction()

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    134
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 134
    Points : 69
    Points
    69
    Par défaut
    merci à tout les deux

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/05/2010, 10h18
  2. [Postgresql]Problème avec les fonctions ...
    Par fet dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/10/2003, 09h04
  3. Problème avec les apostrophes
    Par misterbillyboy dans le forum Requêtes
    Réponses: 2
    Dernier message: 15/07/2003, 16h39
  4. Problème avec les fichiers .JPG
    Par cprogil dans le forum Langage
    Réponses: 5
    Dernier message: 10/06/2003, 15h44
  5. []Problème avec les formulaires Outlook
    Par davidinfo dans le forum Outlook
    Réponses: 6
    Dernier message: 05/12/2002, 09h59

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