c 命名空間

2021-09-19 14:20:27 字數 1448 閱讀 8578

1、目的:解決相同作用域下命名衝突的問題。

在不同的命名空間中可以允許存在相同名稱的變數名、函式名以及類名稱,這樣便有效的避免了不同人編寫類庫發生命名衝突的問題,但是注意在同乙個命名空間中是不能存在相同名稱的變數名、函式名以及類名稱。

為了更好理解,我們可以將命名空間看做資料夾,不同的資料夾下可以存在相同的檔名,但是同乙個資料夾下是不能有相同的檔名的。

2、宣告

namespace  namespace_name
解釋:namespace是關鍵字,不可缺少。namespace_name,開發者自己寫的名字嗎,也就是命名空間的名稱。

實列:

#include using namespace std;

namespace first_space

}

3、命名空間的巢狀

乙個命名空間中允許巢狀另乙個命名空間。

實列:

namespace first_space

// 第二個命名空間

namespace second_space

}}

4、不連續的命名空間

意思就是說,乙個命名空間中的定義部分可以分散在不同的地方。

實列:

//第乙個命名空間

namespace first_space

}// 第二個命名空間

namespace second_space

}//第三個命名空間

namespace first_space

解釋:第乙個命名空間和第三個命名空間其實就是同乙個命名空間,只不過其中定義的內容不一樣,這就相當於將乙個命名空間分散到了不同的位置,這就是所謂的不連續。

因為不同的命名空間中有可能具有相同的變數名,所以如何確定使用的是哪乙個變數呢?

使用方法

(1)命名空間名稱::變數名

(2)using 命名空間名稱::變數名

(3)using namespace 命名空間名

這三種方法的使用效果都是一樣的,無明顯的好壞之分,但是第三種方法容易造成命名空間的汙染,所以建議使用前兩種方法。

實列說明:

namespace first_space

int main()

第三種可以這樣寫,如下:

namespace first_space

using namespace first_space;

int main()

spring p命名空間 c命名空間

p命名空間 1.需要引入命名空間p 並不真實存在 是在spring內部中實現的 xmlns p 2.如果是引用注入需要加 ref字尾 p和c命名空間 並不適用於集合引數 c命名空間 1.需要引入命名空間c 並不真實存在 是在spring內部中實現的 xmlns c 2.可以使用c 引數名 或c 引數...

C 命名空間 預設命名空間與匿名命名空間

2.匿名命名空間 預設命名空間也叫全域性命名空間,所有沒有置於某一具體命名空間下的 即在預設命名空間下,例如func main 函式。include void func void intmain int argc,char ar void func void 需要注意的是 這個就是類似於c語言裡簡單...

C 命名空間,也有叫命名空間

在c 中,名稱 name 可以是符號常量 變數 巨集 函式 結構 列舉 類和物件等等。為了避免在大規模程式設計中,以及在程式設計師使用各種各樣的c 庫時,這些識別符號的命名發生衝突,標準c 引入了關鍵字namespace 命名空間 名字空間 命名空間 名域 可以更好地控制識別符號的作用域。std是c...