|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
16.02.2009, 22:30 | #1 |
Форумчанин
Регистрация: 11.11.2008
Сообщений: 161
|
std
Здравствуйте! вот начал изучать С++, до этого изучал только паскаль и delphi. Вот уже несколько тем прошел, вроде все понял, но только не могу понять что такое пространство имен? и зачем его нужно использовать? Знаю что вот если использовать cout то нужно указывать что он используется из стан. про-ва имен std , так же подключаем библиотеку iostream, и зачем тогда исполь. std?
|
16.02.2009, 22:41 | #2 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Из моих скудных познаний.
Bсе стандартные функции и классы находятся в пространстве имен std. cout - класс из пространства имён std. (Как вы книги читаете? По слогам, что ли?) Последний раз редактировалось mihali4; 16.02.2009 в 22:53. |
16.02.2009, 23:19 | #3 |
Eclipse Foundation
Старожил
Регистрация: 19.09.2007
Сообщений: 2,604
|
В целом правильно. Но пару поправок я дам. cout - объект стандартного потока вывода - тоесть объект класса basic_ostream описанного в файле <ios.h> который подключается в <iostream>. А пространство имен - это типа объединение всех классов в одну "пачку". Тоесть вы можете в своей программе написать класс, и объект этого класса назвать cout - ошибки не будет.
Для того чтобы отличать стандартный cout от вашего (возможно), мы и пишем std::cout, или using namespace std Вот тут я недавно написал статейку по стандартным файлам ввода/вывода. Почитайте, будет интересно я думаю. |
17.02.2009, 11:33 | #4 |
Пользователь
Регистрация: 16.08.2008
Сообщений: 56
|
Пространства имен используются, грубо говоря, для группировки сходных по назначению(функционалу) или реализующих одну задачу конструкций. Например, есть у тебя стандартный компонент TStringGrid и есть еще какой нибудь TSomeGrid, который ты скачал из инета, и он, например, умеет выводить содержимое на печать, но с ним тяжелее работать, поэтому в модуле ты используешь оба компонента под разные задачи. Допустим, у обоих компонентов есть свойство TFillStyle FillStyle, и естественно, в модуле каждого компонента определен тип TFillStyle, причем реализовать он может абсолютно разные функции. Так вот, чтобы указать компилятору, который из TFillStyle использовать, перед именем типа нужно указать пространство имен, в котором он описан, иначе получишь ошибку при компиляции. И это только один из многих примеров....
forever trusting who we are...
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
namespace std; | lacost | Общие вопросы C/C++ | 8 | 22.10.2007 13:17 |
использование using namespace std; | che | Общие вопросы C/C++ | 7 | 11.10.2007 17:13 |