在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...