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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.91
Krist_ALL
9 / 9 / 0
Регистрация: 01.02.2010
Сообщений: 317
#1

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

11.07.2010, 18:50. Просмотров 1344. Ответов 6
Метки нет (Все метки)

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++
Вот так не работает: global.h extern namespace matrix { mat4 proj; mat4 view; mat4 model; mat4 mvp; };

Пространство имен - C++
Как составить код, когда необходимо использовать классы и методы из разных пространств имен. К примеру используется cout из std и...

пространство имен - C++
Здравствуйте! У меня вопрос...В си есть такая функция printf, которая аналогична функции С++ cout. Почему, когда нам необходимо...

пространство имен - C++
Один практикующий программист сказал мне, что пространство именusing namespace std; нежелательно объявлять в начале программы, а лучше...

Класс и пространство имен - C++
Есть стэк, а он использует структуру как базовую единицу. Куда определить описание этой структуры - в пространство имен, а его включить в...

Пространство имен std - C++
В книге Дейтела (как, и в других источниках) написано, что можно написать using namespace std, а можно указывать std:: перед функциями. Но...

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

и как понимать делит глобалку ?
и всеже как же достучаться до переменной в безимянном пространстве если есть переменная с таким же именем локально
ElvenDragon
3 / 8 / 1
Регистрация: 12.07.2009
Сообщений: 361
11.07.2010, 19:25     вопрос про глобальное пространство имен #5
Впринцыпе в безымянное пространство имен все члены работают как глобально статические.
Ток они не ограничены пространством имен в результате етого конфликта не избежать если использовать его. Члены в безымянном пространстве имен не квалифицируются.
Что обозначает делим глобальное пространство имен?
Мы таким образом как бы сказать создаем свое глобальное пространство имен токо оно ограничено именем.
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     вопрос про глобальное пространство имен
Еще ссылки по теме:

Пространство имен std - C++
Какой стиль лучше ? using std::cout; using std::endl; or using namespace std;

Пространство имен в многофайловной программе - C++
Всем привет! Yashman, у которого часто что-то не получается снова в сети с новой проблеммой! :) Вот написал программу, а она не...

Включение класса в пространство имен - C++
Доброго времени суток! Имеется пространство имен, в котором планируют жить классы. Структура: namespace EVE { namespace Actions ...

Как узнать пространство имен? - C++
Здравствуйте, возникла ситуация, при которой нужно явно указать, к какому пространству имен относится функция Ellipse. Я только начал...


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

Или воспользуйтесь поиском по форуму:
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
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     вопрос про глобальное пространство имен
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru