Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

по С++: зачем нужен std:: если iostream уже включен?

SnaipeR Гуру (3991), закрыт 10 лет назад
#include
int main()
{
std::cout << "Hello, world!" << std::endl;
return 0;
}

новичок в программировании, пожалуйста объясните по возможности подробнее.
Лучший ответ
Мудрец (15751) 10 лет назад
В одном и том же заголовочном файле может быть несколько пространств имен.
Тем более много пространств имен можно включить в код, если подключить много заголовочных файлов.

А в разных пространствах имен могут быть члены с одинаковыми именами.

Пространство имен указывают перед ::, чтобы не перепутать, и обратиться к cout или cin именно из пространства имен std, а не какого-то другого пространства имен из iostream или еще какого-то заголовочного файла, включенного через include.
Остальные ответы
Alexey N Просветленный (34836) 10 лет назад
std это неймспейс внутри iostream
u u Профи (899) 10 лет назад
Чтоб не писать std:: постоянно
можно писать
using namеspace std; // Делаем глобальным

Это консоль
Вторник Искусственный Интеллект (185877) 10 лет назад
Нужно указывать пространство имен, чтобы не было конфликтов.
Можно где-нибудь в начале кода написать строчку using namespace std; (после всяких #include xxx), тогда каждый раз не придется писать std:: Это для небольших проектов, в твоем случае например.
zhodzky Просветленный (48931) 10 лет назад
iostream - файл в котором описаны в частности стандартные потоки ввода-вывода. std - пространство имён стандартной библиотеки в котором описаны данные потоки. Если открыть и посмотреть файл iostream, то можно увидеть следующий код:
_STD_BEGIN

//код

_STD_END

где данные макросы:
#define _STD_BEGIN namespace std {
#define _STD_END }
соответственно всё что объявленно в файле iostream входит в данное пространство имён. Чтобы обратиться к данному пространству имён нужно использовать std:: или using namеspace std.Пространства имён используются для избегания конфликтов имён переменных, функций и т. д. . Скажем если есть код, написанный давно, ещё до существования данных потоков (например ещё на чистом СИ) , то пространство имён поможет избежать конфликта если в том коде использовалась переменная cout.
Похожие вопросы