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

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

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

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

08.01.2014, 21:07. Просмотров 361. Ответов 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 ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.01.2014, 21:07     как сократить название пространства имен namespace не убирая полностью ?
Посмотрите здесь:

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

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

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

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

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

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

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

Пространства имен и перегрузка функций - C++
описание: есть библиотека. Пространство имен namespace1, в нем есть несколько перегруженных функций func(). // header.h #ifndef...

Область видимости, пространства имен - C++
имею макрос #define max(a,b) (((a) &gt; (b)) ? (a) : (b)) он определен в Windows.h, который мне нужен в проекте... также мне нужна...

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

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

Придумать название для namespace - C++
дурацкая просьба: придумайте пожалуйста название для неймспейса который будет включать классы Date, Time, Now... вообще мой мозг офигивает...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DU
1480 / 1056 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
08.01.2014, 21:17     как сократить название пространства имен namespace не убирая полностью ? #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;
}
TrueBit
95 / 95 / 12
Регистрация: 19.11.2012
Сообщений: 195
08.01.2014, 21:19  [ТС]     как сократить название пространства имен namespace не убирая полностью ? #3
Спасибо. Это то, что нужно.
outoftime
║XLR8║
506 / 428 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
08.01.2014, 21:24     как сократить название пространства имен namespace не убирая полностью ? #4
TrueBit, как написал DU, для этого существует namespace CC = A::B::C; создает псевдоним для пространства имен.
Yandex
Объявления
08.01.2014, 21:24     как сократить название пространства имен namespace не убирая полностью ?
Ответ Создать тему
Опции темы

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