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 :

Pourquoi mettre des _ et des __ à outrance?


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Lycéen
    Inscrit en
    Juillet 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juillet 2007
    Messages : 148
    Par défaut Pourquoi mettre des _ et des __ à outrance?
    Salut à tous.

    Je me balladais sur internet, quand je suis tombé sur le code source de la classe std::complex<>, et je me demande pourquoi il y a des _ et des __, à part pour réduire la lisibilité de code?

    Merci

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 9
    Par défaut
    Salut,
    personnellement, je place des "_" devant les noms de variables dans mes classes, pour les distinguer des autres variables.

    Exemple pour une fonction quelconque j'écrirais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    void initialiser(int angle) {
    _angle = angle; // _angle est celui de la classe et angle la variable envoyée
    }
    Pour le lien que tu as envoyé, ce doit être des méthodes de programmation mais je sais pas à quoi elles correspondent.


  3. #3
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    Citation Envoyé par Willy S. Voir le message
    Salut,
    personnellement, je place des "_" devant les noms de variables dans mes classes, pour les distinguer des autres variables.
    Tu n'as pas le droit de le faire.

    Tous les noms qui ont __ n'importe où ou un _ au début sont réservés (les règles sont plus détaillées, mais autant simplifier et ne pas prendre de risque), et l'utilisateur d'un compilateur n'est pas sensé les utiliser.

    L'objectif ? Réserver toute une série de noms que la personne qui implémente un compilateur C++ ou sa bibliothèque standard pourra utiliser, sans risque qu'ils entrent en conflit avec un nom défini par l'utilisateur.

    Donc, à ne pas respecter cette contrainte du langage, tu t'expose à ce que ton code soit non portable, car entrant en conflit avec la bibliothèque standard d'un autre compilateur.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 9
    Par défaut
    Ah merci de la précision, je vais rectifier cela.
    C'est vrai que je me souviens d'avoir lu quelque part d'utiliser les préfixes "m_" dans nos classes (et non "_").
    C'est bon ça alors ?

  5. #5
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    Oui, et tu peux aussi suffixer par "_". Du genre angle_ = angle; ...

  6. #6
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    Personnellement, je préfère les nommer avec my ou mon, myAngle = angle. Je trouve qu'avoir un nom aisément prononçable facilite la fluidité de lecture, ainsi que les discussions entre collègues autour du code.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

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

Discussions similaires

  1. Mettre à jour les charsets des tables ET des champs
    Par dev_web2 dans le forum Requêtes
    Réponses: 2
    Dernier message: 09/12/2009, 08h21
  2. Trigger pour mettre des droits sur des procedures et des vues
    Par briino dans le forum Développement
    Réponses: 3
    Dernier message: 23/09/2009, 09h44
  3. Réponses: 3
    Dernier message: 13/09/2007, 18h11
  4. Réponses: 13
    Dernier message: 31/08/2007, 13h53
  5. Réponses: 3
    Dernier message: 23/01/2007, 08h14

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