命名空間的引用方法

2021-10-02 20:54:10 字數 1704 閱讀 8342

1. 同一檔案內使用namespace

(1)namespace的三種引用方法

//方式一

ace::mutex mutex;       

例如:                         

namespace ns1         

void func1(void)

}void func1(void);

int main(void)

//方式二

using ace::mutex;          //一次性只宣告了指定命名空間裡面的乙個變數或函式

例子namespace ns1

void func1(void)

}using ns1::func1;      //告訴編譯器如果在預設的命名空間找不到func1可以到ns1中去找一下

int main(void)

//方式三

using namespace ace;

mutex mutex;

namespace ns1

void func1(void)

}using namespace ns1;           //一次性宣告指定命名空間裡面的所有變數函式等

int main(void)

總結:第一種是用到哪個就去宣告哪個,沒有引入額外的負擔,什麼意思呢?using這裡有點像include關鍵字,就是把整個檔案拿過來在這裡原地展開,假設include的包含的那個檔案有700行,include這行**就相當於把那700行的**全部摟過來了,這種做法還是有一定開銷的,對編譯器的壓力就比較大。

第二種只using進來乙個符號,第三種把命名空間的所有符號全部都using進來了,從成本的角度來說,第一種到第二種到第三種的成本是依次遞公升,但是方便性是越來越好的。實戰當中第一種和第三種用的比較多,第二種用的比較少。

2. 跨檔案來使用namespace怎麼宣告?

namespace ns2;                      //你有東西在另乙個檔案中,你要使用可以,但是你得先宣告

namespace ns2;          //namespace這種思想與要使用跨檔案使用變數或函式是類似的

//宣告的時候不可以有實體,有實體就變成定義了

using namespace ns2;                                       //命名空間引用

3. 預設命名空間

預設命名空間就是沒有放在特定命名空間裡面的,c++中只有唯一的乙個,就是main函式

int main(void)

main函式必須放在預設空間裡面的,不能放在特定命名空間裡面的

(1)預設命名空間又叫全域性命名空間

(3)預設命名空間裡面引用其他命名空間的方法

就是上面提到的三種引用方法,

(4)預設命名空間引用自己的方法

與c語言的函式引用沒什麼區別

(5)其他命名空間引用預設命名空間的方法

void func5(void);      //函式的宣告要放在引用它的命名空間之前,因為編譯只會往前回顧,不會往後看的。  

namespace ns1

void func1(void)

//namespace ns2;

namespace ns2;

using namespace ns2;

int main(void)

void func5(void) 

PHP中命名空間的引用

1 在介紹引用之前要知道命名空間中幾個術語的概念。1 完全限定名稱 任何php 都可以引用完全限定名稱,它是乙個命名空間反斜線開頭的識別符號,如 c root sub1,c root sub1 returnfunctionname 等。2 限定名稱 至少有乙個命名空間分隔符的識別符號,如sub1 r...

c 基礎,引用過載命名空間

命名空間解決全域性命名衝突的問題 標準c 庫中的所有元件都是在乙個被稱為std的名字空間中宣告和定義的。在 採用標準c 的平台上使用標準c 庫中的元件,只要寫乙個using指示符 using namespace std 就可以直接使用標準c 庫中的所有成員。或者 std 成員 的方式也可以使用c 庫...

C 命名空間 引用 內聯函式

命名空間 定義命名空間 namespace namespacea namespace namespacebnode 使用方法1 using namespace namespaceb namespacec node t 使用方法2 using namespaceb namespacec node no...