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 de fonction const


Sujet :

C++

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 577
    Par défaut probleme de fonction const
    Bonjour,

    je voulais passer une fonction membre d'une classe en const.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void MaClasse::GetInfo(int n) const;
    Or dans cette fonction, je fais un parcours d'une std::list avec un iterator.
    Et je me suis rendu compte qu'il fallait que je passe à un const_iterator.

    Je ne comprends pas pourquoi ?
    Pourriez-vous m'expliquer, parce que vu que je fais un simple parcours de ma liste, qui est un objet membre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    std::list<CToto*> m_myList
    je ne vois pas en quoi ça risque de la modifer ?

    Peut être je ne saisis pas assez bien les iterateurs et leurs conséquences ...

    Merci par avance.
    @+

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    258
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 258
    Par défaut
    Le const_iterator signifie que tu ne pourras pas modifier la structure sur laquelle tu itère. Un iterator (non const_) te permet cette modification.

    Les fonctions membres begin et end des conteneurs existent en deux versions : une non-const qui renvoie un iterator et une const qui renvoie un const_iterator.

    Ta fonction étant déclarée const, elle ne peut appeler que des fonctions const sur les membres de la classe. Donc m_myList.begin() utilise la version const et te renvoie un const_iterator.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 577
    Par défaut
    OK merci
    je ne l'avais pas vu ...

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

Discussions similaires

  1. Réponses: 17
    Dernier message: 24/03/2005, 12h24
  2. appel de fonction const
    Par pseudemys dans le forum C++
    Réponses: 5
    Dernier message: 15/02/2005, 23h12
  3. [langage] problème avec fonction read
    Par domidum54 dans le forum Langage
    Réponses: 2
    Dernier message: 30/03/2004, 20h42
  4. [VB6]Problème de fonction
    Par mustang-ffw02 dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 27/03/2004, 15h09
  5. Probleme de fonction
    Par yenna dans le forum ASP
    Réponses: 6
    Dernier message: 01/03/2004, 14h10

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