c++中採用的是單一的全域性變數命名空間。在這單一的空間中,如果有兩個變數或函式的名字完全相同,就會出現衝突。當然,你也可以使用不同的名字,但有時我們並不知道另乙個變數也使用完全相同的名字;有時為了程式的方便,必需使用同一名字。比如你定義了乙個變數string user_name, 有可能在你呼叫的某個庫檔案或另外的程式**中也定義了相同名字的變數,這就會出現衝突。命名空間就是為解決c++中的變數、函式的命名衝突而服務的。解決的辦法就是將你的strtemp變數定義在乙個不同名字的命名空間中。就好像張家有電視機,李家也有同樣型號的電視機,但我們能區分清楚,就是因為他們分屬不同的家庭。
v命名空間將全域性作用域分成不同的部分 v
不同命名空間中的識別符號可以同名而不會發生衝突 v
命名空間可以相互巢狀 v
全域性作用域也叫預設命名空間 v
c++命名空間的使用: v
使用整個命名空間:
usingnamespace
name;
v使用命名空間中的變數:
using
name
::variable;
v使用預設命名空間中的變數:
::variable
下面看個簡單的例程:
#include namespace first
namespace second
; }
}int main()
;
printf("p.x = %d\n", p.x); //訪問namespace second中的namespace internal
printf("p.y = %d\n", p.y);
printf("press any key to continue...");
getchar();
return 0;
}
C 中namespace的用法
c 語言提供乙個全域性的命名空間namespace,可以避免導致全域性命名衝突問題。舉乙個例項,請注意以下兩個標頭檔案 one.h char func char class string somelib.h class string 如果按照上述方式定義,那麼這兩個標頭檔案不可能包含在同乙個程式中,...
C 中的namespace用法
關鍵字namespace定義了乙個名字空間,裡面的變數和函式,宣告在此名字空間外使用須在前面加名字空間名稱.例如 include namespace my class test void fb 提示報錯.因為沒有乙個例項,也就是物件來呼叫這個函式.補充 namespace是為了防止名字汙染在標準 c...
C 中的namespace用法
關鍵字namespace定義了乙個名字空間,裡面的變數和函式,宣告在此名字空間外使用須在前面加名字空間名稱.例如 include namespace my class test void fb int main 類名也可以做為此類的名字空間來使用,如要訪問此類的成員 函式或變數 可用類名 成員名來實...