namespace std - C++ - Programmation
Marsh Posté le 17-01-2004 à 18:19:41
en gros ca permet d'avoir les meme en-tete de fonction dans un meme programme si elle apartienne pas au meme namespace?
Marsh Posté le 17-01-2004 à 18:27:20
c'est un référentiel lexical : les fonctions et classes de la bibliothèque standard sont définies dans std
alors soit tu préfixes par std:: soit tu mets la directive using qui introduit std dans le référentiel lexical courant. pour un projet de débutant, c'est ok, mais pour quelque chose de plus gros, ou tu manipules plusieurs namespace, et bien les namespace permettent de résoudre les collisions
Marsh Posté le 18-01-2004 à 10:22:15
oki je pense avoir compri, merci, je sais enfin pourquoi je met cette ligne a chaque debut de programme
Marsh Posté le 18-01-2004 à 10:24:18
note que tu peux très bien t'en passer
Marsh Posté le 18-01-2004 à 17:12:23
un petit exemple :
Code :
|
equivaut à
Code :
|
Marsh Posté le 18-01-2004 à 17:29:45
et j'en remets une couche
en C++, std::endl n'est pas une façon plus propre d'écrire '\n'
endl <-> '\n' + flush
Marsh Posté le 18-01-2004 à 23:51:10
par contre il est tres "porky" d'utiliser using namespace std systematiquement (surtout si c pour de vieux cin/cout).
Marsh Posté le 19-01-2004 à 00:35:26
taz a écrit : endl <-> '\n' + flush |
dans le cas de cout, flush est censé vider le buffer à l'ecran je crois ?
pourtant c'est automatique ? ou p-e ne vide-t-il pas son buffer a chaque fois qu'il ecrit a l'ecran ? de toutes facons le buffer n'est pas lisible dans une class ostream je crois...
std::endl ne devrait-il donc plus etre utiliser ou reste-t-il des cas ou il est encore utile ?
Marsh Posté le 19-01-2004 à 11:10:29
ben ça dépend: tu peux changer le mode de bufferisation de ton flux, donc ça peut être utile.
Marsh Posté le 18-05-2004 à 08:17:36
j'ai deja vu la difference dans un programme qui faisait un 'segmentation fault', avec les endl, le texte s'afficher jusqu'au plantage et le \n n'afficher pas les dernier cout...
moralité, quand tu debug, pas d'\n
Marsh Posté le 17-01-2004 à 18:12:50
Bonjour à l'iut, on nous a dit de toujours mettre "using namespace std;" au debut de nos programmes mais on nous a pas dit pourquoi?! Donc si quelsu'un pourai brievement m'expliquer, ce serait sympa.
Merci