有前輩可以指導一下namespace是什麼用的! |
尚未結案
|
liangnet
中階會員 ![]() ![]() ![]() 發表:19 回覆:148 積分:83 註冊:2004-01-03 發送簡訊給我 |
|
李國維
高階會員 ![]() ![]() ![]() ![]() 發表:42 回覆:287 積分:235 註冊:2003-02-07 發送簡訊給我 |
|
zilch
中階會員 ![]() ![]() ![]() 發表:5 回覆:87 積分:78 註冊:2002-09-24 發送簡訊給我 |
http://www.cyut.edu.tw/~ckhung/b/pr/variable.shtml
namespace
有時候我們希望在同一個場合使用到隸屬於不同 模組/類別/檔案/程式庫, 但具有相同名字的兩個副程式 (或變數)。 這時需要有一個語法讓我們可以稱呼「A 類別的方法 f」 以便和「B 類別的方法 f」區分。 在 c++ 當中, 用 :: 表示「(某類別) 的」, 在 perl 當中, 同樣用 :: 表示「(某模組) 的」, 這個運算子叫做 scope resolution operator。 通常一個 模組/類別/檔案/程式庫 (究竟是何者, 要視語言而定) 就定義了一個 namespace, 所以不同的 模組/類別/檔案/程式庫 當中可以出現名稱相同, 但其實完全不相干的變數或函數; 而如果有需要的話, 程式設計師仍舊可以在同一場合將它們拿來使用, 只要把 namespace 與變數的名稱一起寫出來就可以了。 ("各班的總務請將錢交給系學會的總務") 你也可以把 A::f 視為一個函數的全名, A 是它的姓, f 是它的名。 寫小程式時, 所有的變數都在同一個 namespace 當中, 所以我們習慣直呼其名; 同時使用到好幾個 namespaces 時, 就必須要連姓帶名喊出來了。 支援 namespace 觀念的語言, 通常也支援多層次的 namespace -- 也就是說 namespace 裡面又有好幾個 namespaces。 [轉]C++中採用的是單一的全局變量命名空間。在這單一的空間中,如果有兩個變量或函數的名字完全相同,就會出現衝突。當然,你也可以使用不同的名字,但有時我們並不知道另一個變量也使用完全相同的名字;有時為了程序的方便,必需使用同一名字。比如你定義了一個變量string user_name, 有可能在你調用的某個庫文件或另外的程序代碼中也定義了相同名字的變量,這就會出現衝突。命名空間就是為解決C++中的變量、函數的命名衝突而服務的。解決的辦法就是將你的strTemp變量定義在一個不同名字的命名空間中。
例如:
#include
|
liangnet
中階會員 ![]() ![]() ![]() 發表:19 回覆:148 積分:83 註冊:2004-01-03 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |