欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++空間命名的使用

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

前言

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

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

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

一、命名空間

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

代碼如下:

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

然后報錯為:

二、命名空間定義

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

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. 同一個工程中允許存在多個相同名稱的命名空間,編譯器最后會合成同一個命名空間中。 ps:一個工程中的test.h和上面test.cpp中兩個N1會被合并成一個

圖片如下:

二、命名空間的使用

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

代碼如下:

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

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

代碼如下:

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的大門完全敞開,想訪問哪個就訪問哪個。

總結(jié)

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

優(yōu)點缺點

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

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

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

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

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

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

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

優(yōu)點:直接引入空間名稱,就不需要作用域限定符了,命名空間mo的大門完全敞開,想訪問哪個就訪問哪個。

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

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

相關文章

  • 最新C/C++中的new和delete的實現(xiàn)過程小結(jié)

    最新C/C++中的new和delete的實現(xiàn)過程小結(jié)

    這篇文章主要介紹了C/C++中的new和delete的實現(xiàn)過程,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • C++ map與set封裝實現(xiàn)過程講解

    C++ map與set封裝實現(xiàn)過程講解

    set set是一種關聯(lián)式容器,下面這篇文章主要給大家介紹了關于C++中map和set使用的相關資料,文中通過實例代碼介紹的非常詳細,對大家學習或者使用C++具有一定的參考學習價值,需要的朋友可以參考下
    2023-03-03
  • C++中聲明類的class與聲明結(jié)構(gòu)體的struct關鍵字詳解

    C++中聲明類的class與聲明結(jié)構(gòu)體的struct關鍵字詳解

    這篇文章主要介紹了C++中聲明類的class與聲明結(jié)構(gòu)體的struct關鍵字,默認情況下結(jié)構(gòu)的所有成員均是公有的,而類的所有成員是私有的,需要的朋友可以參考下
    2016-01-01
  • C語言掃雷游戲的實現(xiàn)

    C語言掃雷游戲的實現(xiàn)

    這篇文章主要為大家詳細介紹了C語言掃雷游戲的實現(xiàn)代碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • c++中為什么不提倡使用vector示例詳解

    c++中為什么不提倡使用vector示例詳解

    這篇文章主要給大家介紹了關于c++中為什么不提倡使用vector的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用c++具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-08-08
  • C++之如何設置字體顏色

    C++之如何設置字體顏色

    很多C++的初學者發(fā)現(xiàn),控制臺的顏色永遠是黑白的,這未免太單調(diào)了,怎么才能使字體像那些軟件一樣呈彩色呢?現(xiàn)在,我們就將學習C++ 設置字體顏色的方法
    2023-08-08
  • C++定制刪除器與特殊類設計(餓漢和懶漢)

    C++定制刪除器與特殊類設計(餓漢和懶漢)

    這篇文章主要給大家介紹了關于C++定制刪除器與特殊類設計的相關資料,使用餓漢模式和懶漢模式,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-07-07
  • 用c語言實現(xiàn)一個電話薄(附完整代碼)

    用c語言實現(xiàn)一個電話薄(附完整代碼)

    大家好,本篇文章主要講的是用c語言實現(xiàn)一個電話?。ǜ酵暾a),感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01
  • C++動態(tài)規(guī)劃實現(xiàn)查找最長公共子序列

    C++動態(tài)規(guī)劃實現(xiàn)查找最長公共子序列

    這篇文章主要介紹了C++動態(tài)規(guī)劃最長公共子序列,在動態(tài)規(guī)劃中,你要將某個指標最大化。在這個例子中,你要找出最長公共子序列
    2022-06-06
  • C語言函數(shù)指針的老生常談

    C語言函數(shù)指針的老生常談

    這篇文章主要為大家介紹了vue組件通信的幾種方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-11-11

最新評論