2 / 2 / 2
Регистрация: 01.08.2013
Сообщений: 60
|
|||||||||||
1 | |||||||||||
namespace10.09.2013, 22:27. Показов 1621. Ответов 16
Метки нет (Все метки)
Не могу понять суть пространства имен. Точнее ,в общих чертах , я понял что это,но зачем это нужно?В частности:
1)А зачем они нужны,собственно говоря, если можно а)назвать по другому б)для объединения создать класс ? 2)при описание пространства имен ,например
3) как обратиться к элементу i этого пространства имен
П.С. заранее спасибо за ответы :-)
0
|
10.09.2013, 22:27 | |
Ответы с готовыми решениями:
16
namespace namespace Namespace namespace std |
Неэпический
|
|
10.09.2013, 22:30 | 2 |
1
|
2 / 2 / 2
Регистрация: 01.08.2013
Сообщений: 60
|
|
10.09.2013, 22:31 [ТС] | 3 |
Croessmah, то бишь в коде 2го вопроса будет зарезервировано два байта под переменную ?
0
|
Неэпический
|
||||||
10.09.2013, 22:35 | 4 | |||||
пространства имен расширяемы
Добавлено через 49 секунд Если потребуется, то да (и почему именно два? Зависит от компилятора) Добавлено через 1 минуту будет одно Добавлено через 54 секунды без имени пространства имен - просто:
1
|
193 / 170 / 32
Регистрация: 09.09.2013
Сообщений: 522
|
|
10.09.2013, 22:36 | 5 |
что бы не засорять глобальное пространство различными переменными, функциями, классами (да вообще все что угодно) то их берут и кидают в пространство имен
0
|
2 / 2 / 2
Регистрация: 01.08.2013
Сообщений: 60
|
|
10.09.2013, 22:45 [ТС] | 6 |
Croessmah, что означает "если потребуется"? При описание такого пространства,но без использования каких-либо переменных/объектов из него память резервируется?
Добавлено через 1 минуту Croessmah, выходит если не указать название создаваемого пространства (просто написав namespace{} ) все что размещено в нем будет находиться в глобальном пространстве?
0
|
Неэпический
|
|
10.09.2013, 22:51 | 7 |
Ну если данная переменная не используется или можно обойтись без нее, то компилятор может просто её выкинуть
Добавлено через 1 минуту угу, почти. И доступно только для данного модуля. Замена Си'шного static
1
|
~ Эврика! ~
1256 / 1005 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
|
|
10.09.2013, 22:53 | 8 |
Нет. Неймспейс — это исключительно статическое понятие. От них ничего не остаётся к моменту исполнения программы. Будет ли выделена память или нет, зависит от того, используется ли данная переменная или нет, так как это влияет на решение компилятора насчёт того, нужна ли под эту переменная память или можно её выкинуть.
Нет, тогда всё внутри будет размещено в анонимном (и не глобальном) пространстве имён. Извне этого пространства до внутренних никак не достучаться.
0
|
2 / 2 / 2
Регистрация: 01.08.2013
Сообщений: 60
|
|
10.09.2013, 22:56 [ТС] | 9 |
OhMyGodSoLong,
То есть получить доступ к переменной размещенной внутри безымянного пространства я не смогу,я правильно понял?
0
|
193 / 170 / 32
Регистрация: 09.09.2013
Сообщений: 522
|
||||||
10.09.2013, 22:57 | 10 | |||||
почему? вот пример, доказывающий обратное:
0
|
193 / 170 / 32
Регистрация: 09.09.2013
Сообщений: 522
|
||||||
10.09.2013, 23:03 | 13 | |||||
я перенес вот это
0
|
2 / 2 / 2
Регистрация: 01.08.2013
Сообщений: 60
|
|
10.09.2013, 23:38 [ТС] | 15 |
еще такой вопрос, если компилятор оставляет только используемые переменые, то что он будет делать с теми переменными, импользование которых зависит от пользователя( пример: если пользователь введ 1,тогда переменна б =10,а если не 1 то ничего не делать.).
) С телефона пишу, извините ,если что.
0
|
2 / 2 / 2
Регистрация: 01.08.2013
Сообщений: 60
|
|
10.09.2013, 23:59 [ТС] | 17 |
Croessmah, спасибо!)
еще не полностью разобрался с этими пространствами, но за 20 минут сидения на форуме понял для себя больше чем за два часа "гугления".
0
|
10.09.2013, 23:59 | |
10.09.2013, 23:59 | |
Помогаю со студенческими работами здесь
17
Friend NameSpace Using namespace std подскажите с using namespace using namespace std Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |