Aprendo C ++ y COM a través de los libros.
En el IDE MS Visual Studio 2012 he creado un nuevo proyecto de C ++ vacío, y agregó algunos archivos existentes a la misma. Mi archivo CPP contiene #include<iostream>
fila, pero en el editor tengo este tipo de mensajes:
Error: identificador "cout" es indefinido
fin
Error: el identificador "endl" no está definido
Pantalla:
¿Por qué ocurre?
Es necesario especificar el espacio de nombres std::
:
std::cout << .... << std::endl;;
Alternativamente, puede utilizar una directiva using
:
using std::cout;
using std::endl;
cout << .... << endl;
Debería añadir que debería evitar estas directivas using
en las cabeceras, ya que el código que las incluya también tendrá los símbolos introducidos en el espacio de nombres global. Restringe las directivas using a ámbitos pequeños, por ejemplo
#include <iostream>
inline void foo()
{
using std::cout;
using std::endl;
cout << "Hello world" << endl;
}
Aquí, la directiva using
sólo se aplica al ámbito de foo()
.
coutestá en el espacio de nombres std, debes usar
std::couten tu código. Y no debes añadir
using namespace std;` en tu fichero de cabecera, es malo mezclar tu código con el espacio de nombres std, especialmente no lo añadas en el fichero de cabecera.