C 中namespace的用法

2021-06-19 23:11:11 字數 929 閱讀 1786

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 類名也可以做為此類的名字空間來使用,如要訪問此類的成員 函式或變數 可用類名 成員名來實...