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 :

le mot clé const


Sujet :

C++

  1. #1
    Membre averti
    Inscrit en
    Septembre 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 18
    Par défaut le mot clé const
    Bonjours à tous

    Ma question tourne au tour du mot clé qui précède la declaration des fonctions. ça sert à quoi? et quelle sont les avantages de son utilisation?

    merci d'avance

  2. #2
    screetch
    Invité(e)
    Par défaut
    qui précède la déclaration ?

    const se réfère toujours à ce qui est a gauche, sauf si c'est le premier terme, dans ce cas ca se réfère a ce qui est à droite

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    type const maFonction();
    ici, on indique que la valeur de retour est de type "type" mais const


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    const type maFonction();
    de même


    ici, on indique qu'il s'agit d'un pointeur sur des char const


    ici, un pointeur constant sur des char que l'on peut modifier


    ici, un pointeur sur un pointeur const qui pointe sur des char const


    si c'est a droite d'une méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    class A
    {
    type maFonction() const;
    }
    cela signifie qu'au sein de la méthode, this, au lieu d'être un poiteur sur A, sera un pointeur sur A const, donc les champs seront const

    [edit] c'est utile lorsque tu ne veux pas qu'une méthode puisse modifier les champs de A lors de l'appel d'une méthode.
    par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    class A
    {
      int member;
    public:
      int getMember();
    };
    ici, rien n'empeche getMember de modifier this.
    si tu mets la fonction const, alors getember ne pourra pas modifier un champs de this
    de plus, comme le "const" se propage, tu n'auras pas non plus le droit d'appeler une méthode non-const (qui pourrait modifier this) au sein de getMember.

    voila

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    780
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 780
    Par défaut
    c'est moi où il n'y a pas d'article dans la FAQ sur les "const" en général?

  4. #4

  5. #5
    Membre averti
    Inscrit en
    Septembre 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 18
    Par défaut
    et alors qu'est ce qu'elle viens faire après la declaration

  6. #6
    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
    Par défaut
    Citation Envoyé par ilyes_dev Voir le message
    et alors qu'est ce qu'elle viens faire après la declaration
    Salut,
    Comme -il me semble - on te l'a déjà expliqué, la réponse est dans la F.A.Q.

Discussions similaires

  1. Réponses: 56
    Dernier message: 17/08/2008, 22h56
  2. question sur le mot clef const
    Par elmcherqui dans le forum C++
    Réponses: 3
    Dernier message: 08/07/2008, 08h42
  3. mot cle const
    Par elmcherqui dans le forum C++
    Réponses: 47
    Dernier message: 22/03/2008, 07h36
  4. Réponses: 14
    Dernier message: 25/10/2007, 15h00
  5. [debutant] le mot clé const
    Par r0d dans le forum Débuter
    Réponses: 12
    Dernier message: 21/06/2006, 16h13

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