名字空間主要用於解決名字衝突的問題,應用程式可能會呼叫多個庫程式,不同的庫程式可能會存在相同
的全域性變數名,全域性函式名,類名等。庫程式的作者為了避免其他程式中名字或者使用者自己定義的名字衝突,
將庫程式中的所有名字放在乙個特定的名字空間下。這樣乙個識別符號可以在不同的名字空間使用,提高標識
符的利用率。
一、名字空間的引入
namespace 空間名
二、名字空間的用法
字首用法: 空間名::成員 <=
=> spacename::member
字尾用法: using
namespace 空間名;
c成員變數的引用;
例如:namespace a
/*定義乙個名字空間a,有乙個成員變數a*/
/*此時如果想要引用成員變數a有兩種方式*/
字首用法:printf
("%d\n"
, a::a)
;字尾用法:using
namespace a;
printf
("%d\n"
, a)
;
三、名字空間的分類
1、自定義名字空間
如果自己編寫庫程式並且用自己定義的名字空間,則無論是在.cpp的源程式中編寫庫函式還是在.h的頭文
件中對庫函式進行宣告,則都需要在指定的名字空間下進行。
用法:
namespace 名字空間
例如:"mylib.cpp"檔案
#include
using
namespace std;
namespace wh
voidg(
)}//在名字空間中定義函式
"mylib.h"檔案
#ifndef _mylib_h_
#define _mylib_h_
namespace wh
#endif
//在名字空間中宣告函式
2、無名名字空間
如果定義某個名字時,沒有納入某個指定的名字空間,則預設放在無名名字空間下。
using
namespace std;
#include
#include
"mylib.h"
using
namespace wh;
//自定義名字空間的using名字宣告
voidf(
)//全域性函式,無名名字空間定義的函式
intmain()
四、名字空間的巢狀
#include
#include
namespace a
}using
namespace a;
using
namespace b;
intmain()
C 的名字空間
1 名字空間的作用 1 避免名字衝突 2 劃分邏輯單元 2 定義名字空間 namespace 名字空間 struct student namespace ns2 3 名字空間成員的使用 1 通過作用域限定操作 空間成員 要訪問的成員 eg int main void 02namespace.cpp ...
C 名字空間
namespace 名字空間名 注 名字空間成員可以是全域性變數 全域性函式 型別 名字空間 作用域限定操作符 名字空間名 要訪問的成員 include namespace nm1 namespace nm2 intmain 當名字沒有重複的時候,我們可以簡化 方法一 名字空間指令 格式 using...
c 名字空間指令與名字空間宣告
在使用任何名字空間之前,編譯器必須能夠找到他,即確定他的宣告所在的作用域。使用某個名字空間中的名字最簡單的方式就是使用限定名字,即把名字空間的名字 如ns1 作為字首,然後加上作用域操作符 然而又是可能不願使用名字空間以追求 簡潔。可以通過下面實現 1.使用using指令 如 using names...