Из того, что я могу сказать, из минимального количества кода, который вы разместили, вы пропускаете, включая. Если вы не пропустили включения, вы не сообщаете своему компилятору, где cout
и endl
.
Ваш код должен выглядеть следующим образом:
#include <iostream>
int main() {
using std::cout;
using std::endl;
cout << "Hello, World!" << endl;
return 0;
}
Вот краткое объяснение.
#include <iostream>
Сообщает препроцессору загрузить этот заголовочный файл в ваш модуль перевода (файл CPP), поэтому у вас есть все предварительные объявления, необходимые для использованияразличные объекты, функции и другие члены STL.
using std::cout
&& using std::endl
Эти два фрагмента кода конкретно указывают компилятору, какие члены пространства имен std
вы хотите использовать. Я бы рекомендовал использовать этот метод (хотя он может показаться утомительным), а не using namespace std;
. Используя using
всего пространства имен, вы в этом случае загрязняете свое глобальное пространство имен.
См. этот вопрос , чтобы найти еще несколько примеров того, почему вам следует избегать using namespace
.