2017-02-19 71 views
0

我想跳过一些范围直接访问一个静态变量,而不写所有的范围。用范围内定义

nts::CLI::Mode::AMode::Out

这里出门就是指针静态变量来一个我想通过写

nts::Out

访问有没有办法做到这一点使用prepocessor定义或另一个指针我命名空间nts?

也许只是一个架构错误,我应该把我的静态变量放在nts命名空间中吗?

+0

你为什么要这样做?这里的动机是什么?如果你想减少写入的数量,你可以说'使用nts :: CLI :: Mode :: Amode :: Out'并且在你的代码中快乐地使用'Out',而不必一次又一次地编写完整的命名空间限定名 – Rishi

+0

'nts','CLI','Mode'和'AMode'是所有命名空间吗? –

+0

不,nts是一个命名空间,其他是类 –

回答

1

最简洁的方法是定义一个别名,例如,针对您的特定情况:
using Out = CLI::Mode::AMode::Out;里面的nts名称空间。

当然,你可以定义任何其他别名,在命名空间或类的任何级别,像using O = nts::CLI::Mode::AMode::Out;O是新的名称等

包括整个命名时一般不赞成,因为如果导致'命名空间污染',但也起作用:using nts::CLI::Mode::AMode;