iostream
— это имя файла, в котором определен cout. С другой стороны, std
— это пространство имен, эквивалентное (в некотором смысле) пакету java.
cout — это экземпляр, определенный в файле iostream
внутри пространства имен std.
Может существовать еще один экземпляр cout
в другом пространстве имен. Таким образом, чтобы указать, что вы хотите использовать экземпляр cout
из пространства имен std
, вы должны написать
std::cout
, указывающий область применения.
std::cout<<"Hello world"<<std::endl;
Чтобы избежать std::
везде, вы можете использовать предложение using
.
cout<<"Hello world"<<endl;
Это две разные вещи. Один указывает область действия, другой — фактическое включение cout
.
В ответ на ваш комментарий
Представьте, что в iostream существуют два экземпляра с именем cout
в разных пространствах имен.
namespace std{
ostream cout;
}
namespace other{
float cout;//instance of another type.
}
После включения <iostream>
вам все равно нужно указать пространство имен. Оператор #include
не говорит: «Эй, используйте cout в std::. Вот для чего нужен using
, чтобы указать область действия
person
Tom
schedule
15.04.2010