【c++】匿名名字空間

轉(zhuǎn)載自:http://hi.baidu.com/thinapple/blog/item/049df24f6d30bc3eaec3aba7.html

? ? 名字空間(namespace),是C++提供的一個解決符合名字沖突的特性梁只。標(biāo)準(zhǔn)規(guī)定昧碉,在不同名字空間中命名相同的符號,代表不同的實體诗赌。通常耘眨,利用定義名字空間的辦法,可以使模塊劃分更加方便境肾,減少模塊間的相互影響剔难。

? ? 通常定義一個名為MyNameSpace的名字空間,其形式為:

namespace MyNameSpace

{

? ? ...

}

? ? 如果不寫MyNameSpace奥喻,在C++里也是允許的偶宫,這就是匿名名字空間。按照標(biāo)準(zhǔn)的描述环鲤,匿名名字空間等價于:

namespace unique

{

? ? ...

}

using?namespace unique;

? ? 這里的unique由編譯器決定纯趋,并保證這是一個在程序里唯一的名字空間。

? ? 因此,可以看出吵冒,匿名名字空間具有一個很有用的特性纯命,那就是,對于不同的編譯單元(cpp文件)痹栖,“同一個”匿名名字空間中的對象亿汞,會被當(dāng)作不同的實體。而這個特性和全局的static修飾是一致的揪阿。那這能帶來什么好處呢疗我?原有的static不是很好用的嗎?

? ? 是的南捂,static修飾吴裤,在處理函數(shù)和變量(包括常量)的時候已經(jīng)工作得很好了。但是static的缺陷是不能修飾class和struct這樣的結(jié)構(gòu)定義溺健。因此麦牺,當(dāng)出現(xiàn)這種情況: 在某個cpp實現(xiàn)里需要輔助的幾個結(jié)構(gòu)a,b,c來幫助實現(xiàn),但是又不希望這些結(jié)構(gòu)污染整個名字空間鞭缭。這時一般有如下兩種解決辦法:

1)定義一個不常用的名字空間剖膳,將a, b, c 放入其中。

這樣缚去,需要程序員自己保證名字空間的名字唯一潮秘。

2)使用類內(nèi)部結(jié)構(gòu)體定義。

這樣易结,如果結(jié)構(gòu)比較復(fù)雜枕荞,比如,有靜態(tài)成員搞动,就行不通了躏精。而且如果這些結(jié)構(gòu)不是一個類獨自使用而需要幾個類共享,處理起來也比較麻煩鹦肿。

這時矗烛,如果使用匿名名字空間,就可以比較完美解決問題了箩溃。

【總結(jié)】: 匿名名字空間提供了類似在全局函數(shù)前加 static 修飾帶來的限制作用域的功能瞭吃。它的這種特性可以被用在struct和class上, 而普通的static卻不能涣旨。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末歪架,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子霹陡,更是在濱河造成了極大的恐慌和蚪,老刑警劉巖止状,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異攒霹,居然都是意外死亡怯疤,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進(jìn)店門催束,熙熙樓的掌柜王于貴愁眉苦臉地迎上來集峦,“玉大人,你說我怎么就攤上這事泣崩∩倭海” “怎么了洛口?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵矫付,是天一觀的道長。 經(jīng)常有香客問我第焰,道長买优,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任挺举,我火速辦了婚禮杀赢,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘湘纵。我一直安慰自己脂崔,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布梧喷。 她就那樣靜靜地躺著砌左,像睡著了一般。 火紅的嫁衣襯著肌膚如雪铺敌。 梳的紋絲不亂的頭發(fā)上汇歹,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天,我揣著相機與錄音偿凭,去河邊找鬼产弹。 笑死,一個胖子當(dāng)著我的面吹牛弯囊,可吹牛的內(nèi)容都是我干的痰哨。 我是一名探鬼主播,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼匾嘱,長吁一口氣:“原來是場噩夢啊……” “哼斤斧!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起奄毡,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤折欠,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體锐秦,經(jīng)...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡咪奖,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了酱床。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片羊赵。...
    茶點故事閱讀 38,064評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖扇谣,靈堂內(nèi)的尸體忽然破棺而出昧捷,到底是詐尸還是另有隱情,我是刑警寧澤罐寨,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布靡挥,位于F島的核電站,受9級特大地震影響鸯绿,放射性物質(zhì)發(fā)生泄漏跋破。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一瓶蝴、第九天 我趴在偏房一處隱蔽的房頂上張望毒返。 院中可真熱鬧,春花似錦舷手、人聲如沸拧簸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽盆赤。三九已至,卻和暖如春蝎宇,著一層夾襖步出監(jiān)牢的瞬間弟劲,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工姥芥, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留兔乞,地道東北人。 一個月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓凉唐,卻偏偏與公主長得像庸追,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子台囱,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,802評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法淡溯,類相關(guān)的語法,內(nèi)部類的語法簿训,繼承相關(guān)的語法咱娶,異常的語法米间,線程的語...
    子非魚_t_閱讀 31,581評論 18 399
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)膘侮,斷路器屈糊,智...
    卡卡羅2017閱讀 134,599評論 18 139
  • //Clojure入門教程: Clojure – Functional Programming for the J...
    葡萄喃喃囈語閱讀 3,618評論 0 7
  • 前些日子,心血來潮稱了一下體重琼了,然后就嚇壞了逻锐,不知不覺間又胖了六斤。于是開始琢磨減肥的事情雕薪。 我看了一本叫《神奇的...
    一半一半zyh閱讀 157評論 0 2
  • 目前昧诱,許多的大學(xué)生已投身到家教的大潮中,他們或受到經(jīng)濟(jì)壓力所袁、就業(yè)壓力的影響盏档,或致力于增長社會經(jīng)驗,或?qū)⑺鳛橐环N體...
    樹之閱讀 1,767評論 0 2