命名空間學習總結

2021-06-09 16:05:16 字數 2019 閱讀 4406

分類: c++

2011-05-12 11:35

288人閱讀收藏

舉報 1、using namespace

命名空間主要是為了解決在大的互相合作的工程中,出現像變數、函式、結構、列舉、類以及類和結構的成員的名稱相互衝突的可能。

declaration region:宣告區域,是可以在其中進行宣告的區域。

potential scope:潛在作用域,變數的潛在作用域是從宣告點開始,到其宣告區域結束。由於變數必須在宣告之後在能使用,因此潛在作用域比宣告區域小。

注意:注意變數並非在其潛在作用域中任何位置都是可見的。如,它可能被在巢狀宣告區域中宣告的同名變數隱藏。

using 宣告和using編譯指令:

using宣告是將特定的名稱新增到它所屬的宣告區域中。它像其他的變數一樣,能夠覆蓋同名的變數。

using編譯指令是使所有的名稱都可以用。它是由命名空間名和關鍵字using namespace組成,使命名空間中的所有名稱都可用,而不需要使用作用域解析操作符。using編譯指令將命名空間的名稱視為函式之外宣告的,但它不會使得該檔案中的其他函式能夠使用這些名稱。一般來說,使用using宣告比使用using編譯指令更安全。

[cpp]view plain

copy

print?

#include 

using

namespace std;    

namespace leezhm    

}    

namespace newleezhm    

namespace nestedleezhm    

}    

}    

void display()    

namespace jill    

;    

double fetch;    

struct hill;    

}    

char fetch;    

int main()    

//}  

leezhm::display();    

newleezhm::display();    

display();    

//using namespace newleezhm;  

//nestedleezhm::display();  

//::display();  

using

namespace newleezhm::nestedleezhm;    

::display();    

using newleezhm::nestedleezhm::display;    

display();    

using

namespace jill;    

//hill thrill;  

double water = bucket(2);    

double fetch;    

cin>>fetch;   //local variable;hides the jill::fetch  

cin>>::fetch; //global variable  

cin>>jill::fetch;//jill:fetch  

cout<" "

<<::fetch<<" "

<

return 0;    

}    

int foom()    

1、使用在已命名的命名空間中宣告的變數,而不使用外部全域性變數和靜態全域性變數。

2、盡量將自己開發的一組有邏輯關係的類庫和函式庫,放人乙個命名空間中。

3、僅將using編譯指令作為將舊**轉換為使用命名空間的權宜之計。

4、不要在標頭檔案中使用using編譯指令。如果一定要使用,請放在#include之後。

5、在匯入名稱時,優先使用using宣告的方法。

6、對於using宣告,首選將其作用域設定為區域性而不是全域性。

命名空間 總結

1.namespace解決了命名衝突問題 可以放 函式 變數 結構體 類 2.命名空間必須定義在全域性作用域下 3.命名空間可以巢狀命名空間 4.命名空間是開放的,可以隨時給命名空間新增內容。巢狀時可用 using namespace a b 匿名 命名空間 當定義乙個命名空間時,可以忽略這個命名空...

Python命名空間總結 「命名空間之禪」

python中的命名空間,在使用點號.和不使用點號.兩種情況下使用變數名時,會有不同的處理方式。賦值語句 var value 僅僅是建立或改變當前作用域變數名,除非使用了global或者nonlocal關鍵字 引用語句 var 搜尋路徑如下 l local 在當前作用域下搜尋變數名var e 在所有...

PHP命名空間學習

1 任何php 都可以包含在命名空間檔案中,但受到影響的只有類,函式,常量。2 定義命名空間 使用關鍵字namespace 宣告 而且必須在所有其它 之前 包括非 php 空白符 宣告。3 唯一可以出現在宣告命名空間語句之前的,是定義原始檔編碼宣告的declare 語句。例如 declare enc...