国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

小白的感悟第五彈—C++命名空間的幾種玩法

2019-11-08 01:41:09
字體:
供稿:網(wǎng)友

**什么是命名空間?**

命名空間域是隨標(biāo)準(zhǔn)C++而引入的。它相當(dāng)于一個(gè)更加靈活的文件域(全局域),可以用花括號(hào)把文件的一部分括起來,并以關(guān)鍵字namespace開頭給它起一個(gè)名字:

namespace name1{     int a = 0; }

說到這里,相信你一定會(huì)想到std這個(gè)命名空間。

沒錯(cuò),標(biāo)準(zhǔn)C++庫中的所有組件都是在一個(gè)被稱為std的名字空間中聲明和定義的。

**命名空間的幾種玩法...**

   NO.1 兩種訪問方式

   要在采用標(biāo)準(zhǔn)C++的平臺(tái)上使用標(biāo)準(zhǔn)C++庫中的組件,有兩種方式:

   1.寫一個(gè)using指示符:using namespace std; 直接使用標(biāo)準(zhǔn)C++庫中的所有成員。

   2.用std::成員 的方式使用C++庫里的成員。(::是作用域解析符)

 

在這里,我們只需要了解有這兩種方式即可。為了程序的簡(jiǎn)潔性和可讀性,編寫程序時(shí)普遍采用第一種方式。當(dāng)然,在同一段程序中,這兩種方式可以同時(shí)使用。

   NO.2 解決變量命名沖突的問題

   我們來看這樣一個(gè)例子:

#include<iostream>using namespace std;namespace name1{	int value = 1;//name1域內(nèi)對(duì)象}namespace name2{	int value = 2;//name2域內(nèi)對(duì)象}int value = 3;//全局變量int main(){	int value = 4;//局部變量	cout << name1::value << endl;	cout << name2::value << endl;	cout << value << endl;	getchar();	return 0;}

在這段程序中,有兩個(gè)域的域內(nèi)變量和全局、局部變量。程序執(zhí)行結(jié)果為:

由上圖可以看出:

1.加上域作用限定符可以訪問不同域中的成員變量,且變量名可以相同。

2.重名的全局和局部變量,編譯器優(yōu)先訪問局部變量,為了印證這一點(diǎn),在屏蔽掉局部變量后,程序執(zhí)行結(jié)果如下:

另外,如果不想用::限定符來訪問自己定義的命名空間,也可以在main函數(shù)前使用“using namespace +命名空間名”的方式來訪問。

  NO.3 命名空間的嵌套定義

  除了單獨(dú)使用外,命名空間還可以進(jìn)行嵌套定義,例如:

#include<iostream>using namespace std;namespace name1{	namespace name2	{		int value = 1;	}	int value = 2; }int main(){	cout << name1::value << endl;	cout << name1::name2::value << endl;	getchar();	return 0;}程序執(zhí)行結(jié)果大家已經(jīng)猜到了,沒錯(cuò),就是2和1。

** 一點(diǎn)題外話。。。**

這個(gè)程序:

#include<iostream.h>using namespace std;int main(){	cout << "Hello World" << endl;	getchar();	return 0}

   不會(huì)編譯通過,是因?yàn)?include<iostream.h>是C++比較老的庫, 而vc6.0仍然支持這個(gè)頭文件 ,但新的編譯器(如vs2008及以上)都不再支持,所以建議使用新庫的頭文件#include<iostream>。

 


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 循化| 余姚市| 西昌市| 寿阳县| 万荣县| 金川县| 合作市| 大荔县| 长兴县| 双牌县| 沂南县| 屏边| 南阳市| 横山县| 太谷县| 册亨县| 神池县| 玉屏| 岳普湖县| 嘉兴市| 晋中市| 巴南区| 辉县市| 浏阳市| 辽阳县| 嘉黎县| 长汀县| 定襄县| 双峰县| 保山市| 宜州市| 花莲县| 三台县| 日土县| 泸溪县| 牡丹江市| 迁西县| 彝良县| 汉源县| 通河县| 象州县|