2017-02-19 90 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;