c 命名空間

2021-07-16 09:56:31 字數 1922 閱讀 8240

c++中的命名空間是為了避免命名衝突,其關鍵字為namespace

如:int flag = 10;//小明宣告的變數

bool flag = true;//小李宣告的變數

如上所述兩人的命名習慣不一樣,小明喜歡用int型別,而小李喜歡用bool型別,,當然,這兩個變數放在同乙個函式中是會報錯(重定義的錯誤),所以在c++中用命名空間來解決這一衝突

namespace ming

namespace li

小明和小李用自己的名字定義了各自的命名空間,這樣兩個變數放在同一函式體內就不會報錯了,但需要使用網域名稱解析操作符來指定是哪個命名空間的變數.

如:ming::flag = 20;

li::flag = false;

除了直接用域解析操作符外還可以直接用using來宣告變數

using ming::flag;

flag = 19;

li::flag = false;

**開頭用using宣告的ming::flag 其含義是用using宣告以後,如果程式中出現未指定的flag就預設為ming::flag;

using 不僅可以針對命名空間中的乙個變數,也可以用於宣告整個命名空間

using namespace ming;

flag = 0;

li::flag = false;

如果ming中還定義了其他變數,同樣也具有flag變數的效果在using宣告後,若未出現具體指定的命名空間的命名衝突變數,則預設採用ming命名空間的變數.

命名空間內部不僅可以宣告或定義變數,對於其它能在命名空間以外宣告或定義的實體,同樣也都能在命名空間內部進行宣告或定義,例如變數的宣告或定義、函式的宣告或定義、typedef等都可以出現在命名空間中。

下面我們來看乙個簡單的c++程式的示例:

#include

using

namespace std;

intmain

()

這是乙個簡單的c++程式hello world示例,在程式中採用了using宣告命名空間std,using namespace std; 這一語句涵蓋了std命名空間中的所有識別符號,而該命名空間包含c++所有標準庫。標頭檔案iostream檔案中定義的所有變數、函式等都位於std命名空間中,每次使用iostream中的變數或函式都需要在前面加上std::是非常麻煩的一件事,為此可直接用using宣告將std中的所有變數或函式等都宣告出來。

如果不用using namespace std;這一語句,則程式應該像下面這樣:

#include

intmain

()

c++語言是以c語言為基礎的,它繼承了所有的c語言函式庫,但c++對這些標準庫都重新命名了。標準c標頭檔案(如math.h)重新命名為cmath,去掉頭檔案的.h,並在前面加上c。因此在c++中如需使用math.h標頭檔案則可以按照如下方式使用。

#include

using

namespace std;

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