|
|
|
using namespace std08.08.2013, 12:53. Показов 19412. Ответов 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 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга,
Ты же видел моря и метели.
Как сменялись короны и стяги,
Как эпохи стрелою летели.
- Этот мир — это крылья и горы,
Снег и пламя, любовь и тревоги,
И бескрайние. . .
|