Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
TrueBit
96 / 96 / 12
Регистрация: 19.11.2012
Сообщений: 195
#1

как сократить название пространства имен namespace не убирая полностью ? - C++

08.01.2014, 21:07. Просмотров 396. Ответов 3
Метки нет (Все метки)

Существует ли какой-нибудь способ сократить путь во вложенном пространстве имен путем замены на другое более короткое название, но полностью не убирая? Как вариант через
C++
1
#define
но меня такой способ немного смущает например
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
 
#define D A::B::C
 
int var;
 
namespace A {
    namespace B {
        namespace C {
            int var;
        }
    }
}
 
int main(){
    var=1;
    D::var=2;
 
    std::cout << var << " " << D::var;
    return 0;
}
как сделать, чтобы можно было обращаться к пространству имен C не через A::B::C, а просто через D:: не используя #define ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.01.2014, 21:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос как сократить название пространства имен namespace не убирая полностью ? (C++):

Не возникает ли коллизия имен, если использовать два пространства имен, и в каждом из них будут одноименные? - C++
Вот например namespace nms1 { int gh; } namespace nms2 { int gh;

Как избавиться от явного указания пространства имен - C++
Есть класс, который нужно вынести в другой файл. Соответственно что делаю: 1. Описание класса в *.h файл 2. Реализацию методов...

Как получить доступ к именам пространства имен из другого файла - C++
Помогите мне разобраться: Если определено пространство имен в одном cpp файле, как использовать одно из имен в другом cpp. Пробую что-то...

Квалификация имен из namespace - C++
Подразумевается что-то вроде этого? #include &lt;iostream&gt; #include &lt;algorithm&gt; namespace nmsps { class cl { }; ...

Использование пространства имен - C++
Написать программу, использующую описанные типы данных: инициализация переменных (ввод пользователя), выполнение действий (в зависимости от...

Пространства имен в Эклипс - C++
Добрый день. Переношу свой проект из IAR на Eclipse+Yagarto(gcc 4.6.2) Подскажите, из-за чего в hpp модулях проекта может не...

3
DU
1484 / 1130 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
08.01.2014, 21:17 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <iostream>
 
int var;
 
namespace A
{
  namespace B
  {
    namespace C
    {
      int var;
    }
  }
}
 
using namespace A::B;   // using
namespace CC = A::B::C; // alias
 
int main()
{
  var = 1;
  std::cout << "var = " << var << std::endl;
 
  C::var = 2;
  std::cout << "C::var = " << C::var << std::endl;
  std::cout << "CC::var = " << CC::var << std::endl;
 
  CC::var = 3;
  std::cout << "C::var = " << C::var << std::endl;
  std::cout << "CC::var = " << CC::var << std::endl;
 
 
  return 0;
}
1
TrueBit
96 / 96 / 12
Регистрация: 19.11.2012
Сообщений: 195
08.01.2014, 21:19  [ТС] #3
Спасибо. Это то, что нужно.
0
outoftime
║XLR8║
511 / 433 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
08.01.2014, 21:24 #4
TrueBit, как написал DU, для этого существует namespace CC = A::B::C; создает псевдоним для пространства имен.
1
08.01.2014, 21:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.01.2014, 21:24
Привет! Вот еще темы с ответами:

Использование пространства имен - C++
Заголовочный файл с осн функциями двунаправленного списка.Нужно построить на его основе стек и очередь с обобщенным интерфейсом т.е...

Создание пространства имен - C++
Всем доброго времени суток !!! Не могу понять назначение создания пространств имен. В книге автор привел следующий код программы....

Отличия пространства имен от структуры - C++
Есть ли разница между пространством имен и структурой? По-моему почти одно и то же

Столкнулся с ошибкой пространства имен - C++
Столкнулся с такой ошибкой: error C2871: System: пространство имен с таким именем не существует. Стоит четвертый Framework. В нем проблема?


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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