最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++命名空間 namespace詳解

 更新時間:2023年04月03日 11:17:44   作者:Hongs_Cai  
定義命名空間,使用namespace關鍵字,后面跟命名空間的名字,然后接一對花括號{ } 即可,{ }中即為命名空間的成員,這篇文章主要介紹了C++命名空間 namespace,需要的朋友可以參考下

一、命名空間的定義

定義命名空間,使用namespace關鍵字,后面跟命名空間的名字,然后接一對花括號{ } 即可,{ }中即為命名空間的成員。

1.一般定義

namespace test
{
    int a = 10;
    int b = 100;
    int ADD(int x, int y)
    {
        return x + y;
    }
}

2.嵌套定義

namespace test
{
    int a = 10;
    int b = 100;
    int Add(int x, int y)
    {
        return x + y;
    }
    namespace test2
    {
        int c(99);
        int d(9);
		//c++可以使用括號來進行列表初始化
        int Sub(int x, int y)
        {
            return x - y;
        }
    }
}

3.重名定義

同一個工程中允許存在多個相同名稱的命名空間,編譯器最后會合成同一個命名空間中。

例如:

namespace N1  //N1是命名空間的名稱
{
	//用花括號{ }將命名空間的內容包起來
	//命名空間的內容,即可以定義變量,也可以定義函數
	int a;
	int Add(int x, int y)
	{
		return x + y;
	}
}
 
namespace N1  //再次定義命名空間 N1
{
	int Mul(int x, int y)
	{
		return x * y;
	}
}

實際上等同于:

namespace N1  //N1是命名空間的名稱
{
    //用花括號{ }將命名空間的內容包起來
    //命名空間的內容,即可以定義變量,也可以定義函數
    int a;
    int Add(int x, int y)
    {
        return x + y;
    }
    int Mul(int x, int y)
    {
        return x * y;
    }
}

二、命名空間的使用

C++為了防止命名沖突,把自己庫里面的東西都定義在一個std的命名空間中要使用標準庫里面的東西,有三種方式:

  • 加命名空間的名稱及作用域限定符。
  • 使用using引入命名空間的成員。
  • 使用using namespace 命名空間名稱引入,將所有名稱全展開。

1.命名空間的名稱及作用域限定符

代碼如下:

namespace test
{
	int a = 10;
	int b = 100;
	int Add(int x, int y)
	{
		return x + y;
	}
	namespace test2
	{
		int c(99);
		//c++可以使用括號來進行初始化
		int d(9);
		int Sub(int x, int y)
		{
			return x - y;
		}
	}
}
int main()
{
	std::cout << test::Add(test::a, test::b) << std::endl;
	std::cout << test::test2::Sub(test::test2::c, test::test2::d) << std::endl;
	return 0;
}

指定命名空間–麻煩,每個地方都要指定,但也是最規(guī)范的方式。

2.使用using namespace 命名空間全展開

代碼如下:

using namespace std;

把std整個展開,相當于庫里面的東西全部到全局域里面去了,使用起來方便但是可能會有與自己命名空間定義的沖突,規(guī)范工程中不推薦這種,日常練習可以用這種。

3.使用using引入命名空間的成員

代碼如下:

int c = 100;
namespace N
{
	int a = 10;
	int b = 20;
	int Add(int left, int right)
	{
		return left + right;
	}
	int Sub(int left, int right)
	{
		return left - right;
	}
}
 
using std::cout;
using std::endl;
int main()
{
    printf("%d\n", N::a);
    printf("%d\n", N::b);
    printf("%d\n", N::Add(1, 2));
    printf("%d\n", N::Sub(1, 2));
    int c = 10;
    printf("%d\n", c);   //局部變量優(yōu)先,所以c為10
    printf("%d\n", ::c); //指定訪問左邊域,空白表示全局域
}

對部分常用的庫里面的東西展開->針對1和2的折中方案,項目中也經常使用。

到此這篇關于C++命名空間 namespace的文章就介紹到這了,更多相關命名空間 namespace內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • C語言如何改變字體顏色

    C語言如何改變字體顏色

    這篇文章主要介紹了C語言如何改變字體顏色,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • C語言數組快速入門詳細講解

    C語言數組快速入門詳細講解

    數組是一組有序的數據的集合,數組中元素類型相同,由數組名和下標唯一地確定,數組中數據不僅數據類型相同,而且在計算機內存里連續(xù)存放,地址編號最低的存儲單元存放數組的起始元素,地址編號最高的存儲單元存放數組的最后一個元素
    2022-05-05
  • Python擴展C/C++庫的方法(C轉換為Python)

    Python擴展C/C++庫的方法(C轉換為Python)

    這篇文章主要介紹了Python擴展C/C++庫的方法(C轉換為Python),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10
  • VC實現批量刪除指定文件的方法

    VC實現批量刪除指定文件的方法

    這篇文章主要介紹了VC實現批量刪除指定文件的方法,是一個比較普遍且實用的功能,需要的朋友可以參考下
    2014-07-07
  • C++實現中值濾波的示例代碼

    C++實現中值濾波的示例代碼

    本文主要介紹了C++實現中值濾波的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-05-05
  • C語言實現超市信息管理系統(tǒng)課程設計

    C語言實現超市信息管理系統(tǒng)課程設計

    這篇文章主要為大家詳細介紹了C語言實現超市信息管理系統(tǒng)課程設計,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 詳解VS2019 dumpbin查看DLL的導出函數

    詳解VS2019 dumpbin查看DLL的導出函數

    這篇文章主要介紹了詳解VS2019 dumpbin查看DLL的導出函數,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • C++中cout的格式使用詳細介紹

    C++中cout的格式使用詳細介紹

    cout 是C++中 ostream 類型的對象,該類被封裝在 < iostream > 庫中,該庫定義的名字都在命名空間 std 中,所以 cout 全稱是 std::cout 。本文重點給大家介紹C++中cout的格式使用,需要的朋友參考下吧
    2021-06-06
  • C++內存分區(qū)模型超詳細講解

    C++內存分區(qū)模型超詳細講解

    在了解內存分區(qū)之前,我們先來聊一聊為什么要進行內存分區(qū)。在進行了內存分區(qū)之后,在不同的區(qū)域存放的數據,會有不同的生命周期,從而會讓程序員的編程變得更加靈活
    2022-11-11
  • Flutter應用Windows平臺接入實踐詳解

    Flutter應用Windows平臺接入實踐詳解

    這篇文章主要為大家介紹了Flutter應用Windows平臺接入實踐詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02

最新評論

仪征市| 清远市| 昌都县| 工布江达县| 五河县| 莱芜市| 新化县| 凤庆县| 武安市| 洪雅县| 荣昌县| 东乌珠穆沁旗| 高阳县| 赤水市| 中山市| 秀山| 健康| 东兴市| 九龙县| 略阳县| 鸡泽县| 灵武市| 方山县| 平山县| 永清县| 浑源县| 灵武市| 普兰县| 都江堰市| 五台县| 江达县| 江西省| 金乡县| 鄢陵县| 朝阳市| 固安县| 崇文区| 信宜市| 江孜县| 扶余县| 金平|