2017-02-19 11 views
0

私はスコープのすべてを書き込まずに直接静的変数にアクセスするためにあるスコープを飛び越したいと思います。アウトは、私がスコープ内で定義する

nts::Out

を書き込むことによって、アクセスしたいものに静的変数へのポインタです

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

使用してこれを行うprepocessor定義する方法や、私の中の別のポインタがあります名前空間のnts?

多分私は静的なvarを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;

関連する問題