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 :

A propos des méthodes constantes


Sujet :

C++

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 8
    Par défaut A propos des méthodes constantes
    Bonjour,

    Imaginons une classe "A" dont les membres sont des pointeurs vers d'autres classes "B" et "C". Si une méthode de la classe "A" modifie la valeur d'un de ses pointeurs membre, il est évident que cette méthode ne sera pas déclarée constante. Cependant si c'est la donnée pointée par un membre de la classe "A" qui est modifié (et non le pointeur lui meme) par la méthode de la classe "A puis-je declarer cette méthode constante ou bien le fait de modifier ce qui est pointé est-il considéré comme modifier un attribut de la classe ?

    En d'autres termes, si une classe se compose de pointeurs, une instance de cette classe est-elle composée uniquement des pointeurs ou bien également des objets pointés ?

    Merci de m'éclairer sur ce point.

  2. #2
    Membre éclairé Avatar de ZaaN
    Inscrit en
    Novembre 2005
    Messages
    819
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 819
    Par défaut
    Il me semble logique que :

    la methode est constante tant que la valeur du pointeur (l adresse a laquelle il pointe) est constante.

    Mais cela reste a confirmé, je ne suis pas certain. Le moyen le plus rapide est de tenter une compilation ;-)

  3. #3
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    En d'autres termes
    Je vois pas en quoi c'est ce que tu as dit précédemment en d'autres termes, mais bon on va répondre à cette question vu qu'elle est moins confuse.

    si une classe se compose de pointeurs, une instance de cette classe est-elle composée uniquement des pointeurs ou bien également des objets pointés ?
    Uniquement des pointeurs, bien évidemment.
    Si tu veux contenir des objets, mets des objets en variables membres.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 8
    Par défaut
    Oui voilà c'est bien ce que je me disais aussi mais étant pris d'un doute inextricable, je préférais obtenir confirmation
    Bon merci à vous, résolu

  5. #5
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 296
    Par défaut
    Le const est effectivement superficiel en cela qu'il qualifie à l'adresse et non à la donnée pointée.

    Dans tous les cas, il faut voir que "const" apporte d'abord une aide syntaxique. Si vu de l'extérieur une fonction ne modifie pas au fond l'état de l'objet, alors il convient de la définir const. Et vice versa.

    Le choix de dire si une fonction doit être "const" doit d'abord être sémantique. Et non pour être syntaxiquement compatible avec d'autres choix.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 24/02/2012, 20h51
  2. Réponses: 18
    Dernier message: 19/08/2011, 16h21
  3. A propos des méthodes avec un "?" à la fin
    Par tsing dans le forum Ruby
    Réponses: 4
    Dernier message: 05/12/2007, 21h49
  4. A propos des constantes char
    Par pinto_armindo dans le forum C
    Réponses: 4
    Dernier message: 26/11/2007, 19h48

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