Я изучаю C++ и COM по книгам.
В IDE MS Visual Studio 2012 я создал новый пустой проект C++, и добавил в него несколько существующих файлов. Мой CPP файл содержит строку #include<iostream>
, но в редакторе я получил такие сообщения:
Error: identifier "cout" is undefined
конец
Ошибка: идентификатор "endl" не определен
Экран:
Почему это происходит?
Вам необходимо указать пространство имен std::
:
std::cout << .... << std::endl;;
В качестве альтернативы можно использовать директиву using
:
using std::cout;
using std::endl;
cout << .... << endl;
Добавлю, что следует избегать использования директив using
в заголовках, так как в коде, включающем их, символы также будут вынесены в глобальное пространство имен. Ограничьте директивы using небольшими областями, например
#include <iostream>
inline void foo()
{
using std::cout;
using std::endl;
cout << "Hello world" << endl;
}
Здесь директива using
применяется только к области видимости foo()
.
Вы можете добавить это в начале после #include <iostream>
:
using namespace std;
cout
находится в пространстве имен std, вы должны использовать std::cout
в своем коде.
И вы не должны добавлять using namespace std;
в ваш заголовочный файл, это плохо смешивать ваш код с пространством имен std, особенно не добавляйте его в заголовочный файл.