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,類默認是私有的,結構體默認是公有的。