C 命名空間

2021-08-21 03:26:08 字數 2618 閱讀 3716

命名空間

(1)傳統的c++命名空間。

術語:1.

宣告區域(declaration region): 可以在其中進行宣告的區域。 例如,可以在函式外面宣告全域性變數,對於這種變數,其宣告區域為其宣告所在的檔案中。對於在函式中宣告的變數,其宣告區域為其宣告所在的**塊。

2.潛在作用域(potential scope): 變數的潛在作用域從宣告點開始,到其宣告區域的結尾。 因此潛在作用域比宣告區域小,這是由於變數必須定義後才能使用。

3.作用域(scope): 變數對程式而言可見的範圍被稱為作用域。

(2)新的命名空間特性。

c++新增功能:通過定義一種新的宣告區域來建立命名的命名空間。

例如,下面**使用新的關鍵字namespace建立了兩個命名空間:jack和jill。

namespace jack ;       //結構宣告

}namespace jill //函式定義

double fetch; //變數宣告

int pal; //變數宣告

struct hill; //結構宣告

}

命名空間可以是全域性的,也可以位於另乙個命名空間中,但不能位於**塊中。 因此,在預設情況下,在命名空間中宣告的名稱的鏈結性為外部的。

命名空間是開放的,即可以把名稱加入到已有的命名空間中。例如,下面這條語句將名稱goose新增到jill中已有的名稱列表中:

namespace jill
同樣,原來的jack命名空間為fetch()函式提供了原型。可以在該檔案後面(或另外乙個檔案中)再次使用jack命名空間來提供函式的**:

namespace jack 

}

當然,需要有一種方法來訪問給定命名空間中的名稱。 最簡單的方法是,通過作用域解析運算子::,使用命名空間來限定該名稱。

jack::pail = 12.34;              //使用乙個變數

jill::hill mole; //創造乙個hill型別結構

jack::fetch(); //使用乙個函式

using宣告和using編譯指令

using宣告使特定的識別符號可用,using編譯指令使整個命名空間可用。

using宣告由被限定的名稱和它前面的關鍵字using組成:

例如:using

jill::fetch;

using編譯指令由命名空間名和它前面的關鍵字using namespace組成:

例如:

using

namespace

jack;  

//使命名空間jack中所有的名稱都可用

(3)命名空間示例

#include//創造命名空間pers和debts

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