Форум программистов, компьютерный форум CyberForum.ru

вопрос про глобальное пространство имен - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.91
Krist_ALL
 Аватар для Krist_ALL
9 / 9 / 0
Регистрация: 01.02.2010
Сообщений: 317
11.07.2010, 18:50     вопрос про глобальное пространство имен #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
namespace {
int a = 1;
}
 
 
int main() {
 
using std::cout;
int a = 5;
cout <<::a;
}
выводит ошибку. error C2039: 'a' : is not a member of '`global namespace''
хотя если я не определю int a в маин и cout <<a; то норм.


как быть? как добрать до глобальной а?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.07.2010, 18:50     вопрос про глобальное пространство имен
Посмотрите здесь:

C++ Пространство имен
C++ пространство имен
пространство имен C++
Пространство имен C++
Класс и пространство имен C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fasked
Эксперт C++
 Аватар для fasked
4925 / 2505 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
11.07.2010, 18:59     вопрос про глобальное пространство имен #2
Цитата Сообщение от Krist_ALL Посмотреть сообщение
namespace {
int a = 1;
}
это не глобальное пространство имен
ElvenDragon
 Аватар для ElvenDragon
3 / 8 / 1
Регистрация: 12.07.2009
Сообщений: 361
11.07.2010, 19:00     вопрос про глобальное пространство имен #3
C++
1
return 0; //нехватает
Ключевое слово namespace делит глобальное пространство имен. Ток можно сказать что ет ограниченое глобальное пространство имен.
Krist_ALL
 Аватар для Krist_ALL
9 / 9 / 0
Регистрация: 01.02.2010
Сообщений: 317
11.07.2010, 19:15  [ТС]     вопрос про глобальное пространство имен #4
в книге написано что по какомуто там стандарту новому все что хочется сделать глобальным писать в безымянное пространство имен.

и как понимать делит глобалку ?
и всеже как же достучаться до переменной в безимянном пространстве если есть переменная с таким же именем локально
ElvenDragon
 Аватар для ElvenDragon
3 / 8 / 1
Регистрация: 12.07.2009
Сообщений: 361
11.07.2010, 19:25     вопрос про глобальное пространство имен #5
Впринцыпе в безымянное пространство имен все члены работают как глобально статические.
Ток они не ограничены пространством имен в результате етого конфликта не избежать если использовать его. Члены в безымянном пространстве имен не квалифицируются.
Что обозначает делим глобальное пространство имен?
Мы таким образом как бы сказать создаем свое глобальное пространство имен токо оно ограничено именем.
Krist_ALL
 Аватар для Krist_ALL
9 / 9 / 0
Регистрация: 01.02.2010
Сообщений: 317
11.07.2010, 19:34  [ТС]     вопрос про глобальное пространство имен #6
и всеже как же достучаться до переменной в безимянном пространстве если есть переменная с таким же именем локально
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.07.2010, 21:24     вопрос про глобальное пространство имен
Еще ссылки по теме:

C++ Пространство имен
Пространство имен C++
C++ Как сделать глобальное пространство имени?

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

Или воспользуйтесь поиском по форуму:
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
11.07.2010, 21:24     вопрос про глобальное пространство имен #7
Цитата Сообщение от Krist_ALL Посмотреть сообщение
#include <iostream>
namespace {
int a = 1;
}
при объявление просто int a = 1; a и так попадет в глобальное пространство имен
думаю в подобном случае никак, переменная замаскирована локальной, при этом безымянной пространство действует как обычное объявление (как если бы написали static int a = 1
Yandex
Объявления
11.07.2010, 21:24     вопрос про глобальное пространство имен
Ответ Создать тему
Опции темы

Текущее время: 20:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru