Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.02.2009, 22:30   #1
Викдон
Форумчанин
 
Аватар для Викдон
 
Регистрация: 11.11.2008
Сообщений: 161
Вопрос std

Здравствуйте! вот начал изучать С++, до этого изучал только паскаль и delphi. Вот уже несколько тем прошел, вроде все понял, но только не могу понять что такое пространство имен? и зачем его нужно использовать? Знаю что вот если использовать cout то нужно указывать что он используется из стан. про-ва имен std , так же подключаем библиотеку iostream, и зачем тогда исполь. std?
Викдон вне форума Ответить с цитированием
Старый 16.02.2009, 22:41   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Из моих скудных познаний.
Bсе стандартные функции и классы находятся в пространстве имен std.
cout - класс из пространства имён std.
(Как вы книги читаете? По слогам, что ли?)

Последний раз редактировалось mihali4; 16.02.2009 в 22:53.
mihali4 вне форума Ответить с цитированием
Старый 16.02.2009, 23:19   #3
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

В целом правильно. Но пару поправок я дам. cout - объект стандартного потока вывода - тоесть объект класса basic_ostream описанного в файле <ios.h> который подключается в <iostream>. А пространство имен - это типа объединение всех классов в одну "пачку". Тоесть вы можете в своей программе написать класс, и объект этого класса назвать cout - ошибки не будет.

Для того чтобы отличать стандартный cout от вашего (возможно), мы и пишем std::cout, или using namespace std

Вот тут я недавно написал статейку по стандартным файлам ввода/вывода. Почитайте, будет интересно я думаю.
MaTBeu вне форума Ответить с цитированием
Старый 17.02.2009, 11:33   #4
tavrocotaps
Пользователь
 
Аватар для tavrocotaps
 
Регистрация: 16.08.2008
Сообщений: 56
По умолчанию

Пространства имен используются, грубо говоря, для группировки сходных по назначению(функционалу) или реализующих одну задачу конструкций. Например, есть у тебя стандартный компонент TStringGrid и есть еще какой нибудь TSomeGrid, который ты скачал из инета, и он, например, умеет выводить содержимое на печать, но с ним тяжелее работать, поэтому в модуле ты используешь оба компонента под разные задачи. Допустим, у обоих компонентов есть свойство TFillStyle FillStyle, и естественно, в модуле каждого компонента определен тип TFillStyle, причем реализовать он может абсолютно разные функции. Так вот, чтобы указать компилятору, который из TFillStyle использовать, перед именем типа нужно указать пространство имен, в котором он описан, иначе получишь ошибку при компиляции. И это только один из многих примеров....
forever trusting who we are...
tavrocotaps вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
namespace std; lacost Общие вопросы C/C++ 8 22.10.2007 13:17
использование using namespace std; che Общие вопросы C/C++ 7 11.10.2007 17:13