命名空間
(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...