2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
||||||
1 | ||||||
Пространство имён19.04.2015, 21:12. Показов 1108. Ответов 12
Метки нет Все метки)
(
Добрый вечер,
1) как правильно называется часть "Foo::" в этой записи
0
|
|
19.04.2015, 21:12 | |
Ответы с готовыми решениями:
12
Пространство имен пространство имен
Пространство имён! |
Модератор
![]() 12639 / 10133 / 6102
Регистрация: 18.12.2011
Сообщений: 27,169
|
|
19.04.2015, 21:15 | 2 |
Это может быть как пространство имен, так и имя класса, в котором
есть статический метод hello()
0
|
rikimaru2013
|
19.04.2015, 21:19
[ТС]
#3
|
Не по теме: как вы определили что метод статический?)
0
|
Модератор
![]() 12639 / 10133 / 6102
Регистрация: 18.12.2011
Сообщений: 27,169
|
|
19.04.2015, 21:21 | 4 |
Нестатические методы нельзя вызывать без создания экземпляра класса,
т.к. они будут обращаться к несуществующим данным.
0
|
rikimaru2013
|
19.04.2015, 21:25
[ТС]
#5
|
Не по теме: где тут вызов? ((( zss, без обид - но я подожду людей, которые не знают, что это статических метод
0
|
Форумчанин
![]() ![]() 8193 / 5043 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
|||||||||||
19.04.2015, 23:20 | 6 | ||||||||||
Приведённый вами пример может быть как реализации метода класса Foo, так и реализация функции из пространства имён Foo. Не знаю с чего вдруг zss решил, что она статическая, вполне может быть любой.
Слова далее были бы справедливы, если бы был вызов Foo::hello. Но его нет. Ничто же не мешает написать например так:
С namespace это выглядело бы так:
1
|
Форумчанин
![]() ![]() 8193 / 5043 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
|
19.04.2015, 23:25 | 8 |
Хотел бы уточнить, какой случай используется? То есть что в объявлении? Класс в namespace?
Но это в любом случае область видимости. Область видимости пространства имён или область видимости класса. Добавлено через 36 секунд Ну в общем я опоздал с конкретизацией.. ![]()
1
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
||||||
19.04.2015, 23:26 [ТС] | 9 | |||||
Хоть кто-то ( Вопрос задали "в лоб" - и я понял, что он какой-то запутаный) думал переспросить)
Отсюда вопрос: почему using namespace не расширяет область видимости для реализации метода класса. Почему приходиться (если ваше утверждение правильное, что и то и то namespace) дописывать повсюду перед именем метода реализации
0
|
![]() |
|
19.04.2015, 23:32 | 10 |
rikimaru2013, может потому что класс создает новый тип данных, члены которого инкапсулированы, и в дальнейшем его нельзя расширять в отличие от namespace? Честно сам задавался этим вопросом, но особо не углублялся.
Добавлено через 3 минуты Я этого не утверждал. Я лишь имел в виду, что в данном контексте это не важно, исходя из самого вопроса.
0
|
Форумчанин
![]() ![]() 8193 / 5043 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
|
19.04.2015, 23:35 | 11 |
То, что Foo перед :: является областью видимости не делает класс namespace-ом. Да, он добавляет к своим методам ограничение на область видимости, но он больше, чем просто scope. Вобщем-то всё это лишь какие-то догадки. Сделали возможно просто чтобы не путать понятия.
Не по теме: Я в начале вообще подумал что речь о том, что если класс в хедере объявлен в определённом namespace, то почему бы в файле с реализацией не написать в начале using namespace X;
0
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|||||||||||
19.04.2015, 23:38 [ТС] | 12 | ||||||||||
Ну я к этому и клонил. Что 21 век, с++14, почему бы не сделать как-то так:
0
|
Форумчанин
![]() ![]() 8193 / 5043 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
|||||||||||||||||||||||||||||||
19.04.2015, 23:54 | 13 | ||||||||||||||||||||||||||||||
rikimaru2013, Я про это:
Не по теме: ; после объявления класса не хватает Добавлено через 3 минуты Но вообщем-то можно и так ведь:
P.S. я понимаю, что это прямиком не отвечает на поставленный вопрос. Скорее так - разговоры на тему. Добавлено через 6 минут На SO также считают, что класс это больше чем просто объявление своего scope. И точно также все свои ИМХО высказывают (как и мы тут). Добавлено через 2 минуты В стандарте ничего конкретного на эту тему не нашёл. Остаются догадки. Почему-то вспомнилось "миллионы мух не могут ошибаться" ![]()
1
|
19.04.2015, 23:54 | |
Помогаю со студенческими работами здесь
13
Пространство имен Пространство имён пространство имён Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |