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