2011-12-25 51 views

回答

30

你爲什麼reffering到當前的命名空間,沒有必要爲這一點,你可以隨便寫:

namespace myNamespace { 
    int myInt = 33; 
    void myFunc() { 
    myInt = 33; 
    } 
}; 

無論聲明哪個變量(例如全局變量myInt),此範圍的變量都將默認使用。

但是,如果您想重命名,您可以使用IDE技術,如替換或重構。

18

好問題。不,沒有這樣的事情。

此外,要注意的是myNamespace::myInt是不是在嵌套的命名空間的情況下,甚至明確的(說你已經得到的namespace myNamespace { namespace myNamespace { … } }錯綜複雜的情況下,要對您需要使用完全合格的命名空間安全方面:

::myNamespace::myInt = 33; 

凡前綴::指的是全局命名空間

22

不,沒有,但如果你真的想做這樣的事情,你可以僞造它。

namespace myNamespace { 
    namespace _ns = ::myNamespace; 
    int myInt; 
    void myFunc() { 
    _ns::myInt = 66; 
    } 
} 

如果更改myNamespace,你只需要改變_ns與之相匹配的。

此外,命名空間後面的分號是多餘的。

+1

我總是忘記命名空間的分配!這是我需要記住的一個技巧。 – fluffy 2011-12-25 21:16:37

相關問題