C++using聲明和using編譯指令

1.using聲明

C++當中提供瞭兩種機制(using聲明和using編譯指令)來簡化對名稱空間中名稱的使用。using聲明使特定的標識符keys,using編譯指令使整個名稱空間可用。

using聲明由關鍵字using和被限定的名稱組成:

using A::fetch;

using聲明將特定的名稱添加到它所屬的聲明區域中,完成聲明之後,我們可以使用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;
}

如果我們在函數外使用using聲明,會將名稱添加到全局名稱空間中:

using A::fetch;

void test() {
    cout << fetch << endl;
}

int main () {
    cin >> fetch;
    fetch += 1.0;
    A::Hill hill;
}

2.using編譯指令

using聲明隻能使一個名稱可用,而using編譯指令可以使得所有的名稱都可用。using編譯指令由名稱空間和它前面的using namespace組成,它使得名稱空間中的所有名稱都可用。

如:

using namespace A;

在全局聲明區域使用using編譯指令,將使得該名稱空間的名稱全局可用。這種情況其實我們已經非常熟悉瞭,因為我們一直在用using namespace std

我們也可以在函數當中使用using編譯指令:

int main () {
    using namespace A;
}

到此這篇關於C++using聲明和using編譯指令的文章就介紹到這瞭,更多相關C++using聲明和using編譯指令內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: