# Include & lt; iostream & gt; существует, но я получаю ошибку: идентификатор & quot; cout & quot; не определено Зачем?

Я изучаю C ++ и COM через книги.
В IDE MS Visual Studio 2012 я создал новый пустой проект C ++ и добавил в него несколько существующих файлов. Мой файл CPP содержит #include<iostream> ряд, но в редакторе я получил такие сообщения:

Ошибка: идентификатор «cout» не определен

конец

Ошибка: идентификатор «endl» не определен

экран:

введите описание изображения здесь

Почему так происходит?

23

Решение

Вам необходимо указать std:: Пространство имен:

std::cout << .... << std::endl;;

Кроме того, вы можете использовать using директива:

using std::cout;
using std::endl;

cout << .... << endl;

Я должен добавить, что вы должны избегать этих using директивы в заголовках, поскольку включающий их код также будет содержать символы, введенные в глобальное пространство имен. Ограничьте использование директив небольшими областями, например

#include <iostream>

inline void foo()
{
using std::cout;
using std::endl;
cout << "Hello world" << endl;
}

Здесь using Директива относится только к сфере действия foo(),

34

Другие решения

cout находится в пространстве имен std, вы должны использовать std::cout в вашем коде.
И ты не должен добавлять using namespace std; в вашем заголовочном файле плохо смешивать ваш код с пространством имен std, особенно не добавляйте его в заголовочный файл.

6

Вы можете добавить это в начале после #include <iostream>:

using namespace std;
5
По вопросам рекламы ammmcru@yandex.ru