pourquoi dois-je inclure le fichier d'en-tête <iostream> après l'utilisation de l'espace de noms std?

Depuis l'espace de noms std a déjà le c++ bibliothèques qui contiennent la définition d'une fonction(si je suis à droite), alors pourquoi avons-nous inclure les fichiers d'en-tête au-dessus??. Depuis l'espace de noms std comprend la norme c++ bibliothèques, je ne vois pas une raison pour inclure les déclarations séparément.

Pas TOUT à fait sûr si vous posez la question "pourquoi avons-nous besoin de deux espaces de noms et les fichiers d'en-tête", ou "pourquoi il fait une différence entre l'ordre de #include <iostream> et using namespace std;?
Vous ne devriez jamais inclure iostream.h à moins que les exigences de votre programme incluent le travail sur le DOS.
en disant que vous êtes en utilisant un espace de noms est en aucune façon la même chose que de dire que vous avez accès à toutes les classes incluses dans cet espace de noms. Donc, essentiellement, vous vous demandez pourquoi, vous devez inclure les fichiers d'en-tête pour l'accès aux classes qui sont déclarées?
iostream.h fait un peu bizarre. La norme actuelle fait référence à #include <iostream> en fait.
Dans Unix, vous n'avez probablement pas un iostream.h - noter la distinction entre iostream et iostream.h.

OriginalL'auteur Manoj Bharadwaj | 2014-09-28