真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

深入理解命名空間

一、為什么使用命名空間

公司主營(yíng)業(yè)務(wù):成都做網(wǎng)站、成都網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。成都創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。成都創(chuàng)新互聯(lián)推出隆安免費(fèi)做網(wǎng)站回饋大家。

  一個(gè)大型的工程往往是由若干個(gè)人獨(dú)立完成的,不同的人分別完成不同的部分,最后再組合成一個(gè)完整的程序。由于各個(gè)頭文件是由不同的人設(shè)計(jì)的,有可能在不同的頭文件中用了相同的名字來(lái)命名所定義的類或函數(shù),這樣在程序中就會(huì)出現(xiàn)名字沖突。不僅如此,有可能我們自己定義的名字會(huì)與C++庫(kù)中的名字發(fā)生沖突。

    名字沖突就是在同一個(gè)作用域中有兩個(gè)或多個(gè)同名的實(shí)體,為了解決命名沖突 ,C++中引入了命名空間,所謂命名空間就是一個(gè)可以由用戶自己定義的作用域,在不同的作用域中可以定義相同名字的變量,互不干擾,系統(tǒng)能夠區(qū)分它們。

二、什么是命名空間

  命名空間是程序設(shè)計(jì)者命名的內(nèi)存區(qū)域,程序設(shè)計(jì)者根據(jù)需指定一些有名字的空間域,把一些全局實(shí)體分別存放到各個(gè)命名空間中,從而與其他全局實(shí)體分隔開(kāi)。

  通俗的說(shuō),每個(gè)名字空間都是一個(gè)名字空間域,存放在名字空間域中的全局實(shí)體只在本空間域內(nèi)有效。名字空間對(duì)全局實(shí)體加以域的限制,從而合理的解決命名沖突。

例:

namespace na

{

   int a;

   char c;

}

則 a和c只在na的作用域內(nèi)有效。

在聲明一個(gè)命名空間時(shí),花括弧內(nèi)不僅可以包含變量,而且還可以包含以下類型:

變量(可以帶有初始化)

常量

函數(shù)(可以是定義或聲明)

結(jié)構(gòu)體

模板

命名空間(命名空間可以嵌套定義)

例:

namespacens1

{

                int a;

                char c = 10;

                void fun();

                int Add(int a, int b)

                {

                                return a + b;

                }

                namespace ns2

                {

                                int b;

                }

}

注意,如果此時(shí)想輸出b,則需要指定外層和內(nèi)層的命名空間

cout<

三、使用命名空間成員的方法

1、在引用命名空間成員時(shí),要用命名空間名和作用域解析符對(duì)命名空間成員進(jìn)行限定,以區(qū)別不同的命名空間中同名標(biāo)識(shí)符。即  命名空間名::命名空間成員名

2、還可以給命名空間取別名

例:

namespace Television

{...}

namespace Tv=Television;

則Tv就是命名空間Television的別名,在以后用到Television的地方都可以用Tv進(jìn)行替換。

3、使用using命名空間成員名

using后面的命名空間成員名必須是有命名空間限制的名字。

例:using ns1::a;

  以上語(yǔ)句表明,在using的作用域內(nèi)如果使用到ns1中的成員a,則不必再用命名空間限定。在以后的程序中如果用到a,則隱含的指ns1::a。  using聲明的作用域是從using語(yǔ)句開(kāi)始,到using所在的作用域結(jié)束。要注意,在同一作用域內(nèi)用using聲明的不同的命名空間的成員不能有同名的成員,否則會(huì)發(fā)生重定義。

4、使用using namespace 命名空間名

  第三條介紹的using命名空間成員名,一次只能聲明一個(gè)命名空間成員,如果一個(gè)命名空間中有多個(gè)變量,就需要多次使用using命名空間成員名。C++中還提供了using namespace 語(yǔ)句來(lái)實(shí)現(xiàn)一次聲明一個(gè)命名空間內(nèi)的全部成員。

例如:

using namespace ns1;

  聲明了在本作用域中要用到命名空間ns1中的成員,在使用該命名空間內(nèi)的任何成員時(shí)都不必使用命名空間限定。在用using namespace聲明的作用域中,命名空間ns1的成員好像在全局域中聲明的一樣,因此不用加命名限定。

4、無(wú)名的命名空間

例:

namespace

{

   void fun();

}

  由于沒(méi)有名字,所以其它文件無(wú)法引用,它只能在本文件的作用域內(nèi)有效,它的作用域使重?zé)o名命名空間聲明開(kāi)始到本文件結(jié)束。在本文件使用無(wú)名命名空間成員時(shí)不必用命名空間限定。其實(shí)無(wú)名命名空間和static是同樣的道理,都是只在本文件內(nèi)有效,無(wú)法被其它文件引用。

5、標(biāo)準(zhǔn)命名空間

  C++庫(kù)的所有標(biāo)識(shí)符都是在一個(gè)名為std的命名空間中定義的,或者說(shuō)標(biāo)準(zhǔn)頭文件(iostream)中的函數(shù)、類、對(duì)象和類模板是在命名空間std中定義的。所以在C++程序的一開(kāi)始,就用using namespace對(duì)std進(jìn)行全局聲明。


網(wǎng)站題目:深入理解命名空間
網(wǎng)頁(yè)鏈接:http://weahome.cn/article/iedeip.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部