Форум программистов, компьютерный форум CyberForum.ru

cout - C++

Восстановить пароль Регистрация
 
Kgfq
74 / 37 / 2
Регистрация: 23.09.2012
Сообщений: 408
18.10.2012, 23:42     cout #1
Если есть std::cout, то должен быть и просто cout. Есть ли он? И если есть, в чем отличия? А если нету, то зачем нужно было пространство имен?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,919
Записей в блоге: 2
Завершенные тесты: 1
18.10.2012, 23:51     cout #2
Чтобы избежать конфликтов имен.
Kgfq
74 / 37 / 2
Регистрация: 23.09.2012
Сообщений: 408
18.10.2012, 23:52  [ТС]     cout #3
Croessmah, то есть, грубо говоря, разработчики предположили: "вдруг кто еще захочет использовать имя cout, давайте мы его запихнем в пространство имен", так?
Vidok
 Аватар для Vidok
36 / 36 / 2
Регистрация: 03.09.2011
Сообщений: 279
18.10.2012, 23:57     cout #4
Kgfq, Типа того. Можно объявить
C++
1
using namespace std;
и использовать без постоянного объявления пространства имен.
Andsteadur
152 / 136 / 3
Регистрация: 23.05.2009
Сообщений: 275
19.10.2012, 00:01     cout #5
В старых версиях C++ есть заголовочный файл iostream.h, вот в нем как раз объявление cout не помещено в пространство std, а расположено в глобальном пространстве имен.
ZaMaZaN4iK
Мой лучший друг-отладчик!
 Аватар для ZaMaZaN4iK
163 / 163 / 9
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
Завершенные тесты: 1
19.10.2012, 00:01     cout #6
отличается тем, что при записи просто cout надо обьявить пространство имен using namespace std;а при записи std::cout; этого делать не надо.
Но я никогда не понимал людей, которые пишут std:: перед операторами - это значительно уменьшает читабельность кода.А конфликт пространств имен - это всё сказки.
ИМХО
Kgfq
74 / 37 / 2
Регистрация: 23.09.2012
Сообщений: 408
19.10.2012, 00:03  [ТС]     cout #7
Имеется ввиду, какое отличие в этих 2х cout'ах
Vidok
 Аватар для Vidok
36 / 36 / 2
Регистрация: 03.09.2011
Сообщений: 279
19.10.2012, 00:04     cout #8
При очень больших проектах это не всегда сказки в принципе. Но я с вами согласен, тоже этого не понимаю, тем более что это пространство используется очень часто, а если нужно использовать свое, то объявить свое через двоеточие, это как по мне наоборот улучшает читабельность)
Anton21
0 / 0 / 0
Регистрация: 18.10.2012
Сообщений: 15
19.10.2012, 00:04     cout #9
Различия нет никакой!
Vidok
 Аватар для Vidok
36 / 36 / 2
Регистрация: 03.09.2011
Сообщений: 279
19.10.2012, 00:04     cout #10
Kgfq, Нет двух, есть один. Различия лишь в объявлении пространства имен
Kgfq
74 / 37 / 2
Регистрация: 23.09.2012
Сообщений: 408
19.10.2012, 00:06  [ТС]     cout #11
Цитата Сообщение от Andsteadur Посмотреть сообщение
В старых версиях C++ есть заголовочный файл iostream.h, вот в нем как раз объявление cout не помещено в пространство std, а расположено в глобальном пространстве имен.
Так же есть <iostream>. В нем cout содержится в std.

В чем различия между cout из iostream.h и std::cout из iostream?
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,057
19.10.2012, 00:13     cout #12
Цитата Сообщение от Kgfq Посмотреть сообщение
Имеется ввиду, какое отличие в этих 2х cout'ах
какое может быть отличие если глобального cout не существует?(сейчас)
ибо
Цитата Сообщение от Andsteadur Посмотреть сообщение
В старых версиях C++ есть заголовочный файл iostream.h, вот в нем как раз объявление cout не помещено в пространство std, а расположено в глобальном пространстве имен.

Цитата Сообщение от Kgfq Посмотреть сообщение
разработчики предположили: "вдруг кто еще захочет использовать имя cout, давайте мы его запихнем в пространство имен", так?
не совсем
представь у тебя есть поток вывода
на экран
в файл
в параллельный порт
еще куда то
как ты одним cout обойдешся?


Цитата Сообщение от ZaMaZaN4iK Посмотреть сообщение
А конфликт пространств имен - это всё сказки.
если с чем то не сталкивался это не значит что это не сушествует
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,919
Записей в блоге: 2
Завершенные тесты: 1
19.10.2012, 00:45     cout #13
Цитата Сообщение от ZaMaZaN4iK Посмотреть сообщение
А конфликт пространств имен - это всё сказки.
Будете писать проект в команде, будут сказки сбываться

Добавлено через 12 минут
Цитата Сообщение от ZaMaZaN4iK Посмотреть сообщение
Но я никогда не понимал людей, которые пишут std:: перед операторами - это значительно уменьшает читабельность кода.
И из-за одного cout включать все пространство std?
C++
1
using std::cout;
Kgfq
74 / 37 / 2
Регистрация: 23.09.2012
Сообщений: 408
19.10.2012, 19:12  [ТС]     cout #14
ValeryS, а почему глобального cout не существует?
разве его удаляли, если есть iostream.h?
StasGamilton
Эксперт по пяченькам
 Аватар для StasGamilton
67 / 67 / 1
Регистрация: 16.08.2011
Сообщений: 258
19.10.2012, 19:31     cout #15
Цитата Сообщение от Kgfq Посмотреть сообщение
ValeryS, а почему глобального cout не существует?
Вам ValeryS уже ответил на этот вопрос, прочитайте внимательно
Kgfq
74 / 37 / 2
Регистрация: 23.09.2012
Сообщений: 408
19.10.2012, 19:46  [ТС]     cout #16
StasGamilton, прочитал. Не понял мысль.

cout существует в глобальном пространстве имен, если подключить iostream.h и в std, если iostream
в чем между этими cout разница?
StasGamilton
Эксперт по пяченькам
 Аватар для StasGamilton
67 / 67 / 1
Регистрация: 16.08.2011
Сообщений: 258
19.10.2012, 20:12     cout #17
Если я не ошибаюсь, разницы нет никакой, просто в одном случае (<iostream.h>) он находиться в глобальной области видимости, а в другом (<iostream>) он находиться в пространстве имен std.
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,057
19.10.2012, 20:15     cout #18
Цитата Сообщение от Kgfq Посмотреть сообщение
cout существует в глобальном пространстве имен, если подключить iostream.h
где ты видел iostream.h?
в Borland C 3.1?
в моем Visual Studio его нет
Некоторые новые компиляторы (например, компилятор Visual C++ из Visual Studio .NET 2003[1]) старые библиотеки <iostream.h> больше не поддерживают, вместо них нужно использовать только новые: #include <iostream>.
источник http://ru.wikipedia.org/wiki/Iostream
StasGamilton
Эксперт по пяченькам
 Аватар для StasGamilton
67 / 67 / 1
Регистрация: 16.08.2011
Сообщений: 258
19.10.2012, 20:16     cout #19
А по поводу ValeryS, то Вам указал, что <iostream.h> используется в старых версиях C++ ну и т.д.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.10.2012, 11:31     cout
Еще ссылки по теме:

cout.setf и cout.precision C++
C++ cout << . << . <<
В чем разница std::cout и просто cout? C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16833 / 5254 / 323
Регистрация: 30.03.2009
Сообщений: 14,145
Записей в блоге: 26
21.10.2012, 11:31     cout #20
Пояснение: Возникает ошибка с using namespace std;
Пример: include <?> для cout
Yandex
Объявления
21.10.2012, 11:31     cout
Ответ Создать тему
Опции темы

Текущее время: 07:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru