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![]()
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![]()
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 :
Pour le lien que tu as envoyé, ce doit être des méthodes de programmation mais je sais pas à quoi elles correspondent.
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 }
![]()
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.
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 ?
Oui, et tu peux aussi suffixer par "_". Du genre angle_ = angle; ...
Mon blog anglais - Mes articles et critiques de livres - FAQ C++0x, avec liste des nouveautés - Conseils sur le C++ - La meilleure FAQ du monde - Avant de créer des classes que vous réutiliserez, regardez si ça n'existe pas déjà - Le site du comité de normalisation du C++
Le guide pour bien débuter en C++ - Cours et tutoriels pour apprendre C++
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.
Partager