Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> namespace std{}; using namespace std; 
:(
    Опции темы
Dims
Дата 1.6.2009, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: 1
Всего: 11



Что даёт вот такая строка после инклюдов:

Код

namespace std{}; using namespace std;


?
PM MAIL   Вверх
mrbrooks
Дата 1.6.2009, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 2
Всего: 306



использование области видимости std (следовательно также переменных и функций реализованных в ней)
PM MAIL   Вверх
Dims
Дата 1.6.2009, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: 1
Всего: 11



А вот эта часть

Код

namespace std{}; 


зачем и что делает?
PM MAIL   Вверх
Lazin
Дата 1.6.2009, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 41
Всего: 154



Цитата(Dims @  1.6.2009,  15:40 Найти цитируемый пост)
зачем и что делает?

http://www.cplusplus.com/doc/tutorial/namespaces/
PM MAIL Skype GTalk   Вверх
mrbrooks
Дата 1.6.2009, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 2
Всего: 306



Цитата(Dims @  1.6.2009,  15:40 Найти цитируемый пост)
зачем и что делает? 

создает пространство имен, внутри которого идентификаторы могут вызываться именно так, как они были объявлены. Но вне блока требуется указание имени пространства имён перед идентификатором.

PM MAIL   Вверх
Dims
Дата 1.6.2009, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: 1
Всего: 11



Я знаю, что такое пространства имён, но не могу сообразить, что конкретно делает вот эта строка в файле:

Код

namespace std{}; 


Варианта два:

1) эта строка не делает ничего, так как внутри фигурных скобок ничего нет; старое содержимое пространства остаётся
2) эта строка затирает содержимое пространства std после чего оно становится пустым, так как внутри скобок ничего нет
PM MAIL   Вверх
zim22
Дата 1.6.2009, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 24
Всего: 69



Цитата(Dims @  1.6.2009,  17:55 Найти цитируемый пост)
Варианта два:

первый вариант правильный.
второй - вообще не правильный. неверный. т.к. вы можете только расширить пространство имён, но никак не сузить его.
***
хотя сузить можно, если ввести новое пространство имён и указать в нём только интересующие функции/классы
Код

namespace my_IO {
  using std::cout;
  using std::cin;
}
my_IO::cout << "yo";


Это сообщение отредактировал(а) zim22 - 1.6.2009, 18:03


--------------------
PM MAIL   Вверх
Dims
Дата 1.6.2009, 18:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: 1
Всего: 11



Непонятно, зачем тогда этот кусок включён в код. Может быть, он всё-таки на что-то может влиять? Или это след от автоматической генерации?
PM MAIL   Вверх
mes
Дата 1.6.2009, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(Dims @  1.6.2009,  16:55 Найти цитируемый пост)
Варианта два:

есть еще один вариант. Указывается для того, чтоб не было ошибки в случае отсутсвия нужного пространства при using.
вот условный пример, в котором комментирование одного из инклудов не приводит к ошибке.
так сказать для удобной отладки :
Код

//#include <iostream>
#include <my/iostream.h>

namespace std {}
using namespace std;

//..

cout << "Hello world";


P.S. пример надуманный, для чего именно используется у Вас, можно понять только увидев большую часть кода, чем Вы привели smile

Это сообщение отредактировал(а) mes - 1.6.2009, 18:17


--------------------
PM MAIL WWW   Вверх
zim22
Дата 1.6.2009, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 24
Всего: 69



Цитата(Dims @  1.6.2009,  18:05 Найти цитируемый пост)
Может быть, он всё-таки на что-то может влиять? 

он может определять пространство std, если оно не было определено ранее.
зачем это может быть надо - я не знаю smile как по мне - толку нет от этого.


--------------------
PM MAIL   Вверх
mes
Дата 1.6.2009, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(Dims @  1.6.2009,  17:05 Найти цитируемый пост)
Или это след от автоматической генерации? 

вполне вероятно, для избежания ошибки указанной выше. smile



--------------------
PM MAIL WWW   Вверх
Dims
Дата 1.6.2009, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: 1
Всего: 11



Согласен с предположением mes.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0830 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.