日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++之命名空间

發(fā)布時間:2023/12/19 c/c++ 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++之命名空间 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

為什么要使用命名空間?

一個中大型軟件往往由多名程序員共同開發(fā),會使用大量的變量和函數(shù),不可避免地會出現(xiàn)變量或函數(shù)的命名沖突。當所有人的代碼都測試通過,沒有問題時,將它們結合到一起就有可能會出現(xiàn)命名沖突。
為了解決合作開發(fā)時的命名沖突問題,C++ 引入了命名空間(Namespace)的概念。

命名空間將全局作用域分成不同的部分不同命名空間中的標識符可以同名而不會發(fā)生沖突命名空間可以相互嵌套全局作用域也叫默認命名空間

對于不帶.h的頭文件,所有的符號都位于命名空間 std 中,使用時需要聲明命名空間 std;對于帶.h的頭文件,沒有使用任何命名空間,所有符號都位于全局作用域。這也是 C++ 標準所規(guī)定的。
將 std 直接聲明在所有函數(shù)外部,這樣雖然使用方便,但在中大型項目開發(fā)中是不被推薦的,這樣做增加了命名沖突的風險,我推薦在函數(shù)內部聲明 std。

命名空間的使用實例:

#include <iostream>// namespace是一個關鍵字,用來定義命名空間 namespace NameA {int a;void swap (int* a, int* b){int temp = *a;*a = *b;*b = temp;}namespace NameAA{};struct A{}; };int a;int main2_3() {// 對命名空間中單個元素使用using NameA::swap;int b = 20;int c = 30;swap (&b, &c);a = 40;return 0; }void func() {}// 2、使用 using 關鍵字 int main2_2() {// 表明使用命名空間NameA中的內容// 但凡在這個聲明之后使用的變量或者函數(shù),只要沒有指明具體的命名空間// 都使用Name A中的內容// using 有效范圍時當前的大括號{ }using namespace NameA;NameA::a = 100;// ::前不加名字,代表使用默認的命名空間::a = 20;func();printf ("a = %d, %d\n", NameA::a, ::a);int b = 10;int c = 20;// swap 沒有指明命名空間// 但是之前有了usingspace NameA; 而NameA中有swapswap (&b, &c);return 0; }// 命名空間的使用,1、域解析符:: int main2_1() {a = 10; // 全局的aNameA::a = 20; // 使用命名空間Name A中的變量int b = 1;int c = 2;NameA::swap (&b, &c);printf ("b = %d, c = %d\n", b, c);return 0;}

總結

以上是生活随笔為你收集整理的C++之命名空间的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。