在這裏,如果我重命名命名空間,我還必須記得查看其餘代碼,並進行所有必要的更改。有沒有像self
,this
或current
這樣的詞來引用當前命名空間?如何在聲明它時引用當前名稱空間?有沒有像「自我」/「這個」這樣的詞?
namespace myNamespace {
int myInt;
void myFunc() {
myNamespace::myInt = 66;
}
};
在這裏,如果我重命名命名空間,我還必須記得查看其餘代碼,並進行所有必要的更改。有沒有像self
,this
或current
這樣的詞來引用當前命名空間?如何在聲明它時引用當前名稱空間?有沒有像「自我」/「這個」這樣的詞?
namespace myNamespace {
int myInt;
void myFunc() {
myNamespace::myInt = 66;
}
};
你爲什麼reffering到當前的命名空間,沒有必要爲這一點,你可以隨便寫:
namespace myNamespace {
int myInt = 33;
void myFunc() {
myInt = 33;
}
};
無論聲明哪個變量(例如全局變量myInt
),此範圍的變量都將默認使用。
但是,如果您想重命名,您可以使用IDE技術,如替換或重構。
好問題。不,沒有這樣的事情。
此外,要注意的是myNamespace::myInt
是不是在嵌套的命名空間的情況下,甚至明確的(說你已經得到的namespace myNamespace { namespace myNamespace { … } }
錯綜複雜的情況下,要對您需要使用完全合格的命名空間安全方面:
::myNamespace::myInt = 33;
凡前綴::
指的是全局命名空間
不,沒有,但如果你真的想做這樣的事情,你可以僞造它。
namespace myNamespace {
namespace _ns = ::myNamespace;
int myInt;
void myFunc() {
_ns::myInt = 66;
}
}
如果更改myNamespace
,你只需要改變_ns
與之相匹配的。
此外,命名空間後面的分號是多餘的。
我總是忘記命名空間的分配!這是我需要記住的一個技巧。 – fluffy 2011-12-25 21:16:37