55 / 13 / 2
Регистрация: 26.10.2014
Сообщений: 1,105
1

пространство имён

14.03.2017, 20:43. Показов 780. Ответов 7
Метки нет (Все метки)

Здравствуйте.
Из C# я примерно представляю что такое пространство имён.
Но возникает вопрос.
Допустим в программе я использую iostream и string. а string требует также std, как и iostream.
Поясните, как так? Ведь я раньше думал, что пространство имён внутри 1 библиотеки.
Заранее благодарен!
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.03.2017, 20:43
Ответы с готовыми решениями:

Пространство имён!
Как лучше указывать пространство имён? using namespace std вначале? или std::? вроде бы проще...

Пространство имён
Допустим я пишу свою программу, для которой пишу свои классы. Стоит ли создавать для них...

Пространство имён
Прочитал сейчас раздел про пространство имён, но так всё равно и не понял, почему лучше не...

Пространство имён
Добрый вечер, 1) как правильно называется часть "Foo::" в этой записи void Foo::hello(){} 2) и...

7
7275 / 6220 / 2833
Регистрация: 14.04.2014
Сообщений: 26,871
14.03.2017, 20:57 2
Они все в одном пространстве.
0
1386 / 1016 / 323
Регистрация: 28.07.2012
Сообщений: 2,804
14.03.2017, 21:02 3
Цитата Сообщение от jonikster Посмотреть сообщение
Допустим в программе я использую iostream и string. а string требует также std, как и iostream.
Они не требуют, они там находятся. В пространство имен можно положить что-угодно откуда-угодно - это просто удобный способ для группировки сущностей и для избежания коллизий имен. Думаю, что в C# должно быть примерно также.
0
2758 / 1912 / 569
Регистрация: 05.06.2014
Сообщений: 5,561
14.03.2017, 21:15 4
Цитата Сообщение от jonikster Посмотреть сообщение
Поясните, как так? Ведь я раньше думал, что пространство имён внутри 1 библиотеки.
Пространство имен это просто префикс имени std::, который можно опускать если написать using namespace std.
0
55 / 13 / 2
Регистрация: 26.10.2014
Сообщений: 1,105
15.03.2017, 10:36  [ТС] 5
Всё равно не понял.
В C# есть библиотека. и внутри неё располагается пространство имён. но не вне библиотеки.
тогда непонятна суть пространства имён в плюсах.
0
2758 / 1912 / 569
Регистрация: 05.06.2014
Сообщений: 5,561
15.03.2017, 10:40 6
Цитата Сообщение от jonikster Посмотреть сообщение
В C# есть библиотека. и внутри неё располагается пространство имён. но не вне библиотеки.
тогда непонятна суть пространства имён в плюсах.
Все имена функций, классов и глобальных переменных библиотеки начинаются на std::. Если вы напишите using namespace std, то писать std:: не обязательно. Все, больше никакой сути нет. В смысле, вообще никакой. Это просто префикс добавленный чтоб отличать std::basic_regex от boost::basic_regex.
0
Любитель чаепитий
3734 / 1793 / 563
Регистрация: 24.08.2014
Сообщений: 5,998
Записей в блоге: 1
15.03.2017, 10:53 7
Только для этого: using namespace std
1
803 / 530 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1
15.03.2017, 11:06 8
jonikster, пространства имен можно дополнять другими именами, делается примерно так
C++
1
2
3
4
5
6
7
8
9
namespace A
{
int x;
}
// какой-та код
namespace A
{
int y;
}
во всех файлах стандартной библиотеки пространство std просто дополняется
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.03.2017, 11:06
Помогаю со студенческими работами здесь

Как внести класс в пространство имён
Есть задача, которую решил, там надо было поработать в пространстве имён. В следующей необходимо...

Как включить класс из внешнего файла в пространство имён?
У меня есть несколько .hpp файлов с объявлениями классов, типа этого: #ifndef...

Как правильно заявлять пространство имён для содержимого модулей?
Снова здравствуйте. При попытке скомпилировать следующий код: #include "circle.hpp" #include...

Зачем создавать безымянное пространство имён, если я могу просто написать static?
Народ, прочитал что в С++ для объявления статической глобальной переменной используют вот такую...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru