1. 程式人生 > >c++==名稱空間(5)

c++==名稱空間(5)

名稱空間

在c語言中
1、只有一個全域性作用域。
2、所有的全域性識別符號共享同一個作用域
3、識別符號之間可能發生衝突

在c++中
1、提出了名稱空間的概念
2、名稱空間將全域性作用域分成不同的部分
3、名稱空間可以相互巢狀
4、全域性作用域也叫預設名稱空間

名稱空間目的:防止命名衝突
如何定義

namespace name
{
    /*……*/
}

namespace First
{
    int i = 0;
}
namespace Second
{
    int i = 1;
    namespace Internal
    {
        struct
P { int x; int y; } } } int main() { using namespace First; using Second::Internal::P; printf("i = %d\n", i); printf("i = %d\n", Second::i); P p = {2, 3}; printf("p.x = %d\n", p.x); printf("p.y = %d\n", p.y); return 0; }

名稱空間的使用:
使用整個名稱空間:using namespace name;
使用名稱空間中的變數:using name::variable;
使用預設名稱空間中的變數: ::variable

預設情況下可以直接使用預設名稱空間中的所有識別符號