C 命名空間,你了解多少?

2021-10-09 18:22:29 字數 1207 閱讀 2991

在c/c++中,變數、函式和類的名稱都將存在於全域性作用域中,可能會導致很多衝突。namespace關鍵字的出現就是針對這種問題的。

使用命名空間的目的:對識別符號的名稱進行本地化,以避免命名衝突或名字汙染

定義命名空間需要用到namespace關鍵字,後面會跟命名空間的名字,然後接一對{},{}中的內容就是命名空間的成員

既可以定義變數,也可以定義函式

namespace n1   //n1為命名空間的名稱

}

namespace n2

namespace n3 }

}

namespace n1   

}namespace n1

}

在使用命名空間n1時,編譯器會將a變數,add函式和mul函式合併

乙個命名空間就定義了乙個新的作用域,命名空間中的所有內容都侷限於該命名空間 

命名空間::變數

::——作用於運算子

::a——明確說明要訪問全域性作用域中的a

n::a——訪問n命名空間中的a

舉例如下:

using  n::a;該條語句加上後相當於將n命名空間中的a當成當前檔案的乙個全域性變數來使用

優點:寫**簡單

缺點:如果該檔案中有相同名稱的全域性變數或函式會產生衝突,如果發生衝突,則按照方式(1)操作

using  namespace  n;將當前命名空間中的所有成員當成該檔案的全域性變數

優點:使用簡單

缺點:產生衝突的概率可能非常大,如果發生衝突,按照方式(1)操作

了解命名空間

命名空間的作用 解決檔案中引用另乙個檔案時存在相同類名,函式名以及常量名的問題,比如test.php檔案如下 然後在test1.php中載入這個檔案 如果兩者的命名空間相同,包括兩者都沒有設定命名空間的情況下,執行test1.php會報衝突,因為兩個檔案有相同的類test,這是不被允許的,然而命名空...

C 當前目錄你了解多少

c 中獲取程式執行的當前目錄的方法有多種,本文為大家提供三種方式,並作簡單分析,有需要的朋友,可以參考下。在c 中,有很多方式可以獲取程式執行的當前目錄,常見的方式有 1 string strpath1 system.environment.currentdirectory 2 string str...

你了解WINX多少?

struct mywindow public winx window mywindow struct mydialog public winx modaldialog mydialog,idd struct myedit public winx edit myedit 請問,sizeof mywin...