CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[C++] Le using namespace std

Wall-Street
Wall-Street
Niveau 5
06 mars 2011 à 12:49:34

Bonjour,

Pourquoi c'est déconseillé d'utiliser ça? j'ai vu ça plusieurs fois surtout lorsqu'il s'agit d'un gros projet :question:

IIIIIIIIIIIIIll
IIIIIIIIIIIIIll
Niveau 10
06 mars 2011 à 14:11:42

En fait, c'est surtout déconseillé d'utiliser dans les en-têtes (.h), parce qu'il sera alors utilisé (plus ou moins) automatiquement dans tout le projet.

Grosso modo, si on utilise un namespace (ici std), c'est justement pour éviter que les noms de classes/variables rentrent en conflit. Commencer par inclure le namespace partout, c'est faire exactement ce qu'on a cherché à éviter.

Bref, si c'est toi qui code un fichier source (.cpp/.cc), tu peux tranquillement inclure std dans ton fichier source, mais c'est pas dit que les gens autour de toi voudront qu'ils soit inclus dans leurs fichiers sources à eux. (Par le biais des en-têtes ; perso, j'aime bien appeler mes "std::string" "string", et ça me fait toujours ch*er quand quelqu'un inclut soudainement std dans tout le projet)

Wall-Street
Wall-Street
Niveau 5
06 mars 2011 à 17:18:04

donc, si j'ai bien compris, le problème réside lorsqu'on met ça dans un fichier header .h, pas dans .cpp!?! :(

IIIIIIIIIIIIIll
IIIIIIIIIIIIIll
Niveau 10
06 mars 2011 à 17:40:07

Tu peux sans problème mettre un using namespace dans un .cpp, du moment qu'il y a pas de conflit de nom, et que tous ceux qui l'éditent sont d'accord.

Paulop
Paulop
Niveau 12
06 mars 2011 à 23:03:23

Tu peux aussi mettre le using namespace dans le namespace de ton projet, pour pas qu'il déborde sur les autres.

hyrulink2
hyrulink2
Niveau 7
09 mars 2011 à 00:09:44

En fait la directive using est scopée, c'est à dire que si on fait:
int i;
{
using namespace std;
i = 9;
}
i = 8;

le namespace std ne sera plus ouvert à la ligne "i = 8". Il est conseillé d'utiliser le using seulement dans les scopes où c'est vraiment utile, quand les noms sont vraiment long(genre les librairies boost). Pour le cas de std où ça te rajoute 5 caractères c'est inutile par exemple.
Il faut savoir aussi que si t'utilise souvent std::string par exemple tu peut mettre "using std::string" et tu n'aura plus besoin de préfixer string par std::.

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment