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

C++命名空間 namespace詳解

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

一、命名空間的定義

定義命名空間,使用namespace關(guān)鍵字,后面跟命名空間的名字,然后接一對(duì)花括號(hào){ } 即可,{ }中即為命名空間的成員。

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++可以使用括號(hào)來(lái)進(jìn)行列表初始化
        int Sub(int x, int y)
        {
            return x - y;
        }
    }
}

3.重名定義

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

例如:

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

實(shí)際上等同于:

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

二、命名空間的使用

C++為了防止命名沖突,把自己庫(kù)里面的東西都定義在一個(gè)std的命名空間中要使用標(biāo)準(zhǔn)庫(kù)里面的東西,有三種方式:

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

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

代碼如下:

namespace test
{
	int a = 10;
	int b = 100;
	int Add(int x, int y)
	{
		return x + y;
	}
	namespace test2
	{
		int c(99);
		//c++可以使用括號(hào)來(lái)進(jìn)行初始化
		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;
}

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

2.使用using namespace 命名空間全展開(kāi)

代碼如下:

using namespace std;

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

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);   //局部變量?jī)?yōu)先,所以c為10
    printf("%d\n", ::c); //指定訪問(wèn)左邊域,空白表示全局域
}

對(duì)部分常用的庫(kù)里面的東西展開(kāi)->針對(duì)1和2的折中方案,項(xiàng)目中也經(jīng)常使用。

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

相關(guān)文章

  • C語(yǔ)言如何改變字體顏色

    C語(yǔ)言如何改變字體顏色

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

    C語(yǔ)言數(shù)組快速入門詳細(xì)講解

    數(shù)組是一組有序的數(shù)據(jù)的集合,數(shù)組中元素類型相同,由數(shù)組名和下標(biāo)唯一地確定,數(shù)組中數(shù)據(jù)不僅數(shù)據(jù)類型相同,而且在計(jì)算機(jī)內(nèi)存里連續(xù)存放,地址編號(hào)最低的存儲(chǔ)單元存放數(shù)組的起始元素,地址編號(hào)最高的存儲(chǔ)單元存放數(shù)組的最后一個(gè)元素
    2022-05-05
  • Python擴(kuò)展C/C++庫(kù)的方法(C轉(zhuǎn)換為Python)

    Python擴(kuò)展C/C++庫(kù)的方法(C轉(zhuǎn)換為Python)

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

    VC實(shí)現(xiàn)批量刪除指定文件的方法

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

    C++實(shí)現(xiàn)中值濾波的示例代碼

    本文主要介紹了C++實(shí)現(xiàn)中值濾波的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • C語(yǔ)言實(shí)現(xiàn)超市信息管理系統(tǒng)課程設(shè)計(jì)

    C語(yǔ)言實(shí)現(xiàn)超市信息管理系統(tǒng)課程設(shè)計(jì)

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

    詳解VS2019 dumpbin查看DLL的導(dǎo)出函數(shù)

    這篇文章主要介紹了詳解VS2019 dumpbin查看DLL的導(dǎo)出函數(shù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • C++中cout的格式使用詳細(xì)介紹

    C++中cout的格式使用詳細(xì)介紹

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

    C++內(nèi)存分區(qū)模型超詳細(xì)講解

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

    Flutter應(yīng)用Windows平臺(tái)接入實(shí)踐詳解

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

最新評(píng)論

衡水市| 桂阳县| 鹤庆县| 金沙县| 温州市| 芜湖县| 秭归县| 靖西县| 泰安市| 奎屯市| 江口县| 牟定县| 云梦县| 公主岭市| 宁德市| 七台河市| 英山县| 池州市| 温宿县| 安化县| 新河县| 平南县| 韶关市| 白沙| 左云县| 广汉市| 于都县| 尉犁县| 双牌县| 大关县| 肥乡县| 青浦区| 项城市| 马尔康县| 东乌珠穆沁旗| 同江市| 长顺县| 芷江| 商城县| 犍为县| 龙陵县|