J'apprends le C++ et le COM à travers les livres. Dans le IDE MS Visual Studio 2012, j'ai créé un nouveau projet C++ vide et y ai ajouté des fichiers existants. Mon fichier CPP contient #include<iostream>
row, mais dans l'éditeur, j'ai reçu de tels messages:
Erreur: l'identifiant "cout" n'est pas défini
fin
Erreur: l'identifiant "endl" n'est pas défini
Écran:
Pourquoi ça arrive?
Vous devez spécifier l'espace de noms std::
:
std::cout << .... << std::endl;;
Alternativement, vous pouvez utiliser une directive using
:
using std::cout;
using std::endl;
cout << .... << endl;
Je dois ajouter que vous devez éviter ces directives using
dans les en-têtes, car le code incluant celles-ci aura également les symboles introduits dans l'espace de noms global. Restreindre l'utilisation de directives à de petites étendues, par exemple
#include <iostream>
inline void foo()
{
using std::cout;
using std::endl;
cout << "Hello world" << endl;
}
Ici, la directive using
s'applique uniquement à la portée de foo()
.
Vous pouvez l'ajouter au début après #include <iostream>
:
using namespace std;
cout
est dans l'espace de noms std, vous devez utiliser std::cout
dans votre code. Et vous n'ajouterez pas using namespace std;
dans votre fichier d'en-tête, il est mauvais de mélanger votre code avec l'espace de noms std, surtout ne l'ajoutez pas dans le fichier d'en-tête.