EasyC++,Using 聲明和 Using 編譯指令
大家好,我是梁唐。
using聲明
C++當中提供了兩種機制(using聲明和using編譯指令)來簡化對名稱空間中名稱的使用。using聲明使特定的標識符keys,using編譯指令使整個名稱空間可用。
using聲明由關(guān)鍵字using和被限定的名稱組成:
- using A::fetch;
using聲明將特定的名稱添加到它所屬的聲明區(qū)域中,完成聲明之后,我們可以使用fetch代替A::fetch了。
我們來看一個具體的例子:
- namespace A {
- double bucket(double n) {..}
- double fetch;
- struct Hill {...};
- }
- int main () {
- using A::fetch;
- cin >> fetch;
- fetch += 1.0;
- A::Hill hill;
- }
如果我們在函數(shù)外使用using聲明,會將名稱添加到全局名稱空間中:
- using A::fetch;
- void test() {
- cout << fetch << endl;
- }
- int main () {
- cin >> fetch;
- fetch += 1.0;
- A::Hill hill;
- }
using編譯指令
using聲明只能使一個名稱可用,而using編譯指令可以使得所有的名稱都可用。using編譯指令由名稱空間和它前面的using namespace組成,它使得名稱空間中的所有名稱都可用。
如:
- using namespace A;
在全局聲明區(qū)域使用using編譯指令,將使得該名稱空間的名稱全局可用。這種情況其實我們已經(jīng)非常熟悉了,因為我們一直在用using namespace std。
我們也可以在函數(shù)當中使用using編譯指令:
- int main () {
- using namespace A;
- }