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 :

convention nomage des variables membre


Sujet :

C++

  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    688
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 688
    Par défaut convention nomage des variables membre
    Bonjour,

    Quel sont les arguments avancés pour défendre la convention de nommage avec un underscore à la fin plutôt qu'au début par exemple concernant les variables membres :

    int myvar_;

    On retrouve cette syntaxe dans pas mal de projets de qualités

    Merci

  2. #2
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Par défaut
    Je t'invite à jeter un œil sur ce sujet.

  3. #3
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Salut,

    Le seul vrai argument que l'on puisse avancer (mais il est identique pour toute convention de nommage qui déciderait de pré / post fixer le nom des membres) est que cela te permet d'éviter les accesseurs (ou les mutateurs) et getXXX / setXXX...

    Cela te permet, en effet, d'envisager une classe sous la forme de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    class MaClass
    {
        public:
            std::string const & name() const{return name_;} // "getName()"
            /* voire, pourquoi pas ? */
            void name(std::string const & newname(){name_=newname;} // "setname"
        private:
            std::string name_;
    };
    Mais tu remarquera que cet argument se tient pour n'importe quelle convention de nommage, que l'on décide d'utiliser m_name, my_name myName ou...

    il y a bien un autre argument, mais je ne le donne que pour ce qu'il vaut: l'ajout d'un underscore en fin de nom est, sans doute, la solution la plus courte que l'on puisse trouver qui ne soit pas réservée
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  4. #4
    Membre Expert Avatar de Astraya
    Homme Profil pro
    Consommateur de café
    Inscrit en
    Mai 2007
    Messages
    1 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Consommateur de café
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 048
    Par défaut
    Bonjour,

    L'avantage est aussi de garder un variable simple, lisible et non surchargé avec des "m" ou des majuscules. Sinon il n'y a pas vraiment de bon ou de mauvais choix dans une convention de nommage. Tout vas dépendre d'un gars qui vas décidé que c'est mieux comme ça car lui à décidé que c'était mieux comme ça

  5. #5
    Membre très actif
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    688
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 688
    Par défaut
    oui c'est sûr que c'est beaucoup une histoire de goût et de couleur....dans le lien donné par gl, il y est fait mention que les _ en début de variable était reservé par le compilo ?? exception faite si c'est une minuscule qui suit...comment dire, ça me parait étrange comme règle , quelqu'un pour infirmer/confirmer ?

    EDIT:
    Citation Envoyé par koala01 Voir le message
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    class MaClass
    {
        public:
            std::string const & name() const{return name_;} // "getName()"
            /* voire, pourquoi pas ? */
            void name(std::string const & newname(){name_=newname;} // "setname"
        private:
            std::string name_;
    };
    je suis moi même très friand de cette façon de faire (mis à part la place du const mais c'est une autre histoire)

  6. #6
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 294
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 294
    Par défaut
    Salut,

    Citation Envoyé par guillaume07 Voir le message
    dans le lien donné par gl, il y est fait mention que les _ en début de variable était reservé par le compilo ?? exception faite si c'est une minuscule qui suit...comment dire, ça me parait étrange comme règle , quelqu'un pour infirmer/confirmer ?
    Oui, cf. quels sont les identificateurs interdits par la norme.

    MAT.

  7. #7
    Membre très actif
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    688
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 688
    Par défaut
    THANKS!

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

Discussions similaires

  1. convention de nommage des variables
    Par Tanebisse dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 20/03/2009, 09h17
  2. [POO] Définition des variables membre static
    Par AurélienB dans le forum Langage
    Réponses: 13
    Dernier message: 18/02/2008, 11h39
  3. Réponses: 3
    Dernier message: 07/12/2006, 12h23
  4. Réponses: 7
    Dernier message: 13/09/2006, 16h05
  5. [Convention]Préfixage des noms de variables
    Par javaSudOuest dans le forum Langage
    Réponses: 5
    Dernier message: 18/11/2005, 15h52

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