|
|
|
using namespace std08.08.2013, 12:53. Показов 19624. Ответов 11
Метки нет (Все метки)
Обьясните пожалуйста понятным языком, что такое пространство имен, и зачем нужна эта команда или std::
0
|
|
| 08.08.2013, 12:53 | |
|
Ответы с готовыми решениями:
11
Что использовать, std::cout или просто using namespace std? Использовать using namespace std; или каждый раз прописывать std:: . ? Зачем часто писать std::, если можно один раз using namespace std? |
|
41 / 37 / 8
Регистрация: 24.07.2013
Сообщений: 219
|
||
| 08.08.2013, 13:04 | ||
|
Проше будит обьяснить так если ты создаш 2-ве функции с одинаковыми именами ты не сможиш их применять однако если ты разместиш их прототипы в разных хедерах и подключиш только 1-н то все будит нормально ) тоесть std это стандартная пространство имен но если ты попробуеш создать чтото такое что уже там присутствует или имеет эдентичное название ты получиш ошибку . а когда ты пишиш using namespace std ты достаеш все что там храниться и можиш использовать в своей проге Добавлено через 5 минут Однако такжи можно не использовать все пространство имен а доставать только то что тебе необходимо например std::cout std::cin в таком случае ты сможиш использовать все что тебе необходимо из std и такжи использовать свои классы функции имеющие эдентичные названия с теми что хранятся в std
1
|
||
|
|
|
| 08.08.2013, 13:13 [ТС] | |
|
0
|
|
|
41 / 37 / 8
Регистрация: 24.07.2013
Сообщений: 219
|
||
| 08.08.2013, 13:28 | ||
|
ух щяз меня бить будут )) Добавлено через 6 минут Но уверености 0 ибо с принтф ваапше не общяюсь)
0
|
||
| 08.08.2013, 13:29 | |
|
0
|
|
|
погромист
415 / 251 / 30
Регистрация: 27.08.2012
Сообщений: 550
|
|
| 08.08.2013, 13:30 | |
|
CHELOVEKPAUK, Неймспейсы ввели в язык С++ для того, чтобы избежать коллизии имен
Не по теме: alex1392, пожалуйста, пишите грамотно, в редакторе сообщений есть же подчеркивание неправильных слов. Читать невозможно ИМХО
0
|
|
|
419 / 418 / 72
Регистрация: 27.05.2012
Сообщений: 1,168
|
||
| 08.08.2013, 13:31 | ||
|
пример - пишешь ты игру - и есть у тебя в игре собачка, кошечка и человек, и вот пишешь ты графику и обзываешь классы HymanGraphic, CatGraphic и DogGraphic. Для звуков извлекаемых из твоих персонажей - HumanSound, CatSound, DogSound - в таком духе то есть для каждого модуля придумывать уникальное имя чтоб конфликтов не было. С пространствами имен ты определяешь пространства Graphic{Human, Dog, Cat} и Sound{Human, Dog, Cat} и сразу видно что к чему относится - ну няша же
1
|
||
|
Неэпический
|
||
| 08.08.2013, 13:48 | ||
Сообщение было отмечено ildwine как решение
РешениеКакие проблемы могут возникнуть? Самое первое - нельзя иметь два файла с одним именем Теперь допустим, что всё же у нас два разных файла с одним именем (файл1) оказались в корневике и Вам начальник со свирепым выражением лица, крича и разбрызгивая во все стороны свою слюну кричит "Открой файл1", но вот беда - их два и какой открывать? У Вас по сути один нормальный путь - спросить какой именно, собственно компилятор так и делает - выдает ошибку с текстом на подобии "Имя 'такое-то' двусмысленно". А если бы всё лежало по папкам, то коллизий бы не возникло. Вам бы сказали открыть файл "файл1" из каталога "каталог1" ( каталог1::файл1 ) или открыть файл "файл1" из каталога "каталог2" ( каталог2::файл1 ) А теперь к примеру на программе: А теперь представьте, что написали Вы программу, всё работает - класс, всё довольны! И вот решили вдруг, что нужно еще сделать пару фишек. Нашли стороннюю библиотеку, которая отлично подходит для реализации этих самых "фишек", но вот беда в ней есть классы с таким же именем как и у Вас. Что делать? Создавать копию Вашего класса, но с другим именем? Ну это жестко. Вот пространства имен призваны решать такие проблемы. Например, вся стандартная библиотека, содержится в одном пространстве имен std, а подключаемые файлы так же определяют свои пространства имен, например библиотека boost находится в пространстве имен boost. Если писать boost::vector, то будет понятно, что используется вектор из библиотеки boost, а не std. Что касается using namespace такое-то, это означает примерно следующее: "Использовать пространство имен такое-то в этой области видимости". То есть мы "скидываем" всё содержимое пространства имен в "текущую" область видимости, тем самым её засоряя ( пример про корневой каталог без разделения на папки ). То есть пространства имен можно рассматривать как уточнение имени сущности.
29
|
||
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|
| 08.08.2013, 14:18 | |
|
0
|
|
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|
| 08.08.2013, 14:41 | |
|
0
|
|
|
Комп_Оратор)
|
||
| 16.04.2017, 11:59 | ||
![]() Хочу бросить гнутый пятак в копилку. По сути, добавление к имени префикса пространства/пространств, который может, учитывая их возможную вложенность, достаточно сложен: Universe::MyGalactic::SolarSystem::MyComputer::MyArrayTest::my_array_size=12345;это способ увеличить количество символов имени, снижая тем самым вероятность совпадений (конфликтов). Но ведь можно же было бы просто сочинять вот такие имена: UniverseMyGalacticSolarSystemMyComputerMyArrayTest_my_array_size=12345;или даже: efruwetkwerjhnltkhrylkjmtyljtumkjlkumyukljmlm_MY_ARRAY_SIZE=12345;Однако при произвольном кодировании длинного имени проблема уникальности порождает: -проблему проверки всех подобных имён которые уже имеются на несовпадение; -смысловая нагрузка, которую должно бы нести "хорошее" имя требует внимательного посимвольного прочтения и анализа каждого имени; -сам по себе набор подобных имён утомителен и чреват ошибками, даже с применением копи-паст. Применение механизма пространств имён даёт мощный инструмент управления уникальностью и простого контроля и набора. Создавая пространство, можно отнести все имена к одной области. Конфликт пространств решается придумыванием другого
3
|
||
| 16.04.2017, 11:59 | |
|
Помогаю со студенческими работами здесь
12
Пространство имен - namespace std или std::
using namespace std Using namespace std std:: vs namespace Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|