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

C++空間命名的使用

 更新時(shí)間:2023年01月28日 08:54:00   作者:林耀東(東叔)  
本文主要介紹了C++空間命名的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

前言

提示:由于C++是在C語(yǔ)言基礎(chǔ)之上,增加了很多新的東西。

本文講解命名空間的具體使用方法

提示:以下是本篇文章正文內(nèi)容,下面案例可供參考

一、命名空間

定義:在C/C++中,變量、函數(shù)和后面要學(xué)到的類(lèi)都是大量存在的,這些變量、函數(shù)和類(lèi)的名稱將都存 在于全局作用域中,可能會(huì)導(dǎo)致很多沖突。使用命名空間的目的是對(duì)標(biāo)識(shí)符的名稱進(jìn)行本地化, 以避免命名沖突或名字污染,namespace關(guān)鍵字的出現(xiàn)就是針對(duì)這種問(wèn)題的。

代碼如下:

#include <stdio.h>
#include <stdlib.h>
int rand = 10;
int main()
{
	printf("%d",rand);
	return 0;
}

然后報(bào)錯(cuò)為:

二、命名空間定義

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

namespace Morgan//名稱
{
    //內(nèi)容........
}

1.嵌套性

代碼如下:

正常的嵌套

#include <stdio.h>
#include <stdlib.h>
namespace mo
{
	int rand = 10;
	namespace mor
	{
		int rand = 90;
	}
}
int main()
{
 
	printf("%d\n", mo::mor::rand);
	printf("%d\n", mo::rand);
 
	return 0;
}

 結(jié)果

函數(shù)嵌套

#include <stdio.h>
#include <stdlib.h>
namespace mo
{
	int rand = 10;
	namespace mor
	{
		int pr()
		{
			return 1;
		}
		int rand = 90;
	}
}
int main()
{
	printf("%d\n", mo::mor::pr());
	return 0;
}

結(jié)果

2.和并性

3. 同一個(gè)工程中允許存在多個(gè)相同名稱的命名空間,編譯器最后會(huì)合成同一個(gè)命名空間中。 ps:一個(gè)工程中的test.h和上面test.cpp中兩個(gè)N1會(huì)被合并成一個(gè)

圖片如下:

二、命名空間的使用

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

代碼如下:

    namespace mo {
    	int a = 10;
    	int b = 20;
    	}
    }
     
    //方法1.:命名空間名稱+作用域限定符
     
    int main() {
    	printf("%d\n", mo::a);//10
    	return 0;
    }

2.使用using將命名空間中某個(gè)成員引入

代碼如下:

namespace mo {
	int a = 10;
	int b = 20;
	}
}
 
//使用方法2.:
using mo::b;
int main() {
	printf("%d\n", mo::a);	//10
	printf("%d\n", b);		//20
	return 0;
}

3.使用using namespace 命名空間名稱 引入

代碼如下:

    namespace mo {
    	int a = 10;
    	int b = 20;
    }
     
    using namespace mo;
    int main() {
    	printf("%d\n", a);
    	printf("%d\n", b);
    	return 0;
    }

直接引入空間名稱,就不需要作用域限定符了,命名空間mo的大門(mén)完全敞開(kāi),想訪問(wèn)哪個(gè)就訪問(wèn)哪個(gè)。

總結(jié)

提示:這里對(duì)文章進(jìn)行總結(jié):

優(yōu)點(diǎn)缺點(diǎn)

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

優(yōu)點(diǎn):指定作用域,做到最好的隔離方法

缺點(diǎn):如果要使用多次命名空間中的某一個(gè)變量或函數(shù)會(huì)很麻煩

2.使用using將命名空間中某個(gè)成員引入

優(yōu)點(diǎn):如果要使用多次命名空間中的某一個(gè)變量或函數(shù)可以直接引入

using將命名空間剛好為1.與2.的折中方案

3.使用using namespace命名空間名稱 引入

優(yōu)點(diǎn):直接引入空間名稱,就不需要作用域限定符了,命名空間mo的大門(mén)完全敞開(kāi),想訪問(wèn)哪個(gè)就訪問(wèn)哪個(gè)。

缺點(diǎn):很容易發(fā)生沖突

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

相關(guān)文章

  • Qt自繪實(shí)現(xiàn)蘋(píng)果按鈕滑動(dòng)效果的示例代碼

    Qt自繪實(shí)現(xiàn)蘋(píng)果按鈕滑動(dòng)效果的示例代碼

    這篇文章主要介紹了Qt自繪實(shí)現(xiàn)蘋(píng)果按鈕滑動(dòng)效果的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • C語(yǔ)言的遞歸函數(shù)詳解

    C語(yǔ)言的遞歸函數(shù)詳解

    這篇文章主要為大家介紹了C語(yǔ)言的遞歸函數(shù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-01-01
  • C++?STL容器適配器使用指南

    C++?STL容器適配器使用指南

    C++?STL(標(biāo)準(zhǔn)模板庫(kù))是一套功能強(qiáng)大的?C++?模板類(lèi),提供了通用的模板類(lèi)和函數(shù),這些模板類(lèi)和函數(shù)可以實(shí)現(xiàn)多種流行和常用的算法和數(shù)據(jù)結(jié)構(gòu),如向量、鏈表、隊(duì)列、棧,今天我們來(lái)探究一下stl容器適配器的使用吧
    2021-11-11
  • C語(yǔ)言實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)(鏈表)

    C語(yǔ)言實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)(鏈表)

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)學(xué)生信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • Qt Design Studio安裝圖文教程

    Qt Design Studio安裝圖文教程

    本文主要介紹了Qt Design Studio安裝圖文教程,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • C++中的boost::function庫(kù)簡(jiǎn)介

    C++中的boost::function庫(kù)簡(jiǎn)介

    這篇文章介紹了C++中的boost::function庫(kù),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • pybind11: C++ 工程提供 Python 接口的實(shí)例代碼

    pybind11: C++ 工程提供 Python 接口的實(shí)例代碼

    這篇文章主要介紹了pybind11: C++ 工程如何提供 Python 接口,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • 詳解OpenMP的線程同步機(jī)制

    詳解OpenMP的線程同步機(jī)制

    在本篇文章當(dāng)中主要給大家介紹?OpenMP?當(dāng)中線程的同步和互斥機(jī)制,在?OpenMP?當(dāng)中主要有三種不同的線程之間的互斥方式。下面就來(lái)和大家來(lái)討論一下OpenMP當(dāng)中的互斥操作,需要的可以參考一下
    2023-01-01
  • C++寫(xiě)Linux框架示例解析

    C++寫(xiě)Linux框架示例解析

    這篇文章主要為大家介紹了C++實(shí)現(xiàn)Linux框架示例代碼詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • c++中的自增/自減操作方式

    c++中的自增/自減操作方式

    這篇文章主要介紹了C++中的自增和自減運(yùn)算符,包括前綴和后綴形式,并通過(guò)一個(gè)具體的例子解釋了自增/自減表達(dá)式的值與函數(shù)參數(shù)傳遞的關(guān)系,文章指出,自增/自減表達(dá)式的值是在表達(dá)式求值時(shí)確定的,而不是在自增/自減運(yùn)算后
    2025-03-03

最新評(píng)論

泗水县| 巫溪县| 商河县| 通渭县| 民权县| 张家川| 兴化市| 牙克石市| 舒城县| 河源市| 汉沽区| 南郑县| 浠水县| 都江堰市| 若羌县| 新巴尔虎右旗| 千阳县| 班玛县| 宕昌县| 龙州县| 称多县| 汕头市| 许昌县| 宁陵县| 兴山县| 平潭县| 濮阳县| 神池县| 萍乡市| 环江| 涪陵区| 保德县| 桃源县| 娄底市| 祁阳县| 海林市| 永靖县| 通榆县| 安福县| 和林格尔县| 夹江县|