C++命名空間

1.命名空間的定義

c++標準爲了和C區別開,也爲了正確使用命名空間,規定頭文件不使用後綴.h,在C++採用命名空間可以將變量,函數,類很好的組織起來,避免衝突,命名空間實際上定義了一個範圍。

namespace user

{

        int  a(10);

}

2.命名空間的使用

   ::域作用符  

    using namespace user;其作用域爲該行代碼的開始到代碼結束。如果在塊語句內部其作用域爲定義開始到塊語句結束。

    例:

    void test()

    {

using namespace user;

     }

     對user命名空間中的a進行賦值的時候要採用user::a=15;進行操作;

    當命名空間的名稱長度較長的時候可以用 namespace r=user;進行重命名。

3.命名空間的嵌套

    在命名中間中可以進行命名空間的嵌套,即相同名稱的命名空間是可以被多次聲明的,例:

     namespace  user

     {

 int a(10);

namespace tianya

        {

          int b(20);

        }

    }

    此時對命名空間tianya的訪問採用 user::tianya::b;

    如果此時採用 using namespace user::tianya進行訪問則只有tianya是可見的。

4.命名空間的拓展

在一處寫的命名空間可以在另一處進行擴展,例如可以對上面的user命名空間增加定義

      namespace user

     {

        char *name("helloworld");

     }

5.命名空間注意事項

    1、在命名空間中一般不直接寫函數,當需要函數的時候採用函數指針的形式,這樣的好處是易於更改

    例:

    namespace user{

        int (*p)(int,int)=add;

    }

    int add(int a,int b)

     {

 return a+b;

     }

     2、命名空間是透明的,所有的都是公有的,不能有private,類默認是私有的,結構體默認是公有的。

     

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章