A quoi sert “using namespace std”?

A quoi sert d’ using namespace std ?

J’aimerais voir des explications en termes simples.

  • using : Vous allez l’utiliser
  • espace de noms : pour utiliser quoi? Un espace de noms
  • std : espace de noms std (où les fonctionnalités de la bibliothèque standard C ++, telles que ssortingng ou vector , sont déclarées).

Après avoir écrit cette instruction, si le compilateur voit une ssortingng il saura que vous faites référence à std::ssortingng , et s’il voit un vector , il saura que vous faites référence à std::vector . (Pourvu que vous ayez inclus dans votre unité de compilation les fichiers d’en-tête où ils sont définis, bien sûr.)

Si vous ne l’ écrivez pas, lorsque le compilateur voit une ssortingng ou un vector il ne saura pas à quoi vous faites référence. Vous devrez lui indiquer explicitement std::ssortingng ou std::vector , et si vous ne le faites pas, vous obtiendrez une erreur de compilation.

Lorsque vous appelez à l’ using namespace ; tous les symboles de cet espace de noms seront visibles sans append le préfixe d’espace de noms. Un symbole peut être par exemple une fonction, une classe ou une variable.

Par exemple, si vous ajoutez à l’ using namespace std; Vous pouvez écrire simplement cout au lieu de std::cout lorsque vous appelez l’opérateur cout défini dans l’espace de noms std .

Ceci est assez dangereux car les espaces de noms sont destinés à éviter les collisions de noms et à écrire en using namespace vous épargnez du code, mais vous perdez cet avantage. Une meilleure alternative consiste à utiliser uniquement des symboles spécifiques, les rendant ainsi visibles sans le préfixe d’espace de noms. Par exemple:

 #include  using std::cout; int main() { cout << "Hello world!"; return 0; }