標籤:class 一個 聲明 作用 建立 範圍 擴充 函數名 子空間
目錄
題記:命名空間下 不知道是不是還可以自己定義一些子空間,在代碼裡看到這樣的寫法,甚是疑惑。
一、什麼是命名空間
通俗意義上說,每個命名空間都有自己的範圍,範圍的函數名,類名等是不可以重複的,唯一的。但是可以和其他命名空間的函數重名。這樣就可以解決大型工程中函數名重複的問題。
1、全域變數的範圍是整個程式,在同一範圍中不應有兩個或多個同名的實體(enuty),包括變數、函數和類等。
可以通過extern聲明同一程式中的兩個檔案中的同名變數是同一個變數。如果在檔案B中有以下聲明:
extem int a;
表示檔案B中的變數a是在其他檔案中已定義的變數。由於有此聲明,在程式編譯和串連後,檔案A的變數a的範圍擴充到了檔案B。如果在檔案B中不再對a賦值,則在檔案B中用以下語句輸出的是檔案A中變數a的值: cout<
2.編寫命名空間
namespace namespace_name { //declarations }
此種方式,如果已經存在一個namespace_name命名空間,則是開啟已有的命名空間,添加一部分進去;如果原來沒有此名稱的命名空間,則是建立一個新的。
3.命名空間可以是不連續的
與其他範圍不同,命名空間可以在幾個部分中定義。命名空間由它的分離定義部分的總和構成,命名空間是累積的。一個命名空間的分離部分可以分散在多個檔案 中,在不同文字檔中的命名空間定義也是累積的。就像上面說的那樣,一個存在的命名空間去在裡面不停的累加一些東西。
4.介面和實現的分離
命名空間定義可以不連續意味著,可以用分離的介面檔案和實現檔案構成命名空間,因此,可以用於管理自己的類和函數定義相同的方法來組織命名空間:
命名空間定義可以不連續意味著,可以用分離的介面檔案和實現檔案構成命名空間,因此,可以用於管理自己的類和函數定義相同的方法來組織命名空間:
(1)定義類的命名空間成員,以及作為類介面的一部分的函式宣告與對象聲明,可以放在標頭檔中,使用命名空間成員的檔案可以包含這些標頭檔。
(2)命名空間成員的定義可以放在單獨的源檔案中。
二、命名空間的具體工程用例
命名空間及其用法(C++)