作用域

標(biāo)識(shí)符的作用域有函數(shù)原型作用域、局部作用域(塊作用域)赘方、類作用域和 命名空間(namespace) 作用域

函數(shù)原型作用域

函數(shù)原型作用域 函數(shù)原型作用域 是C++ 程序中最小的作用域——函數(shù)原型的聲明中一定要包含形參的名稱和類型說(shuō)明快集。實(shí)際上現(xiàn)在大家應(yīng)該也能夠感受得到每瞒, 在函數(shù)原型聲明時(shí)形式參數(shù)的作用范圍就是函數(shù)原型作用域 孤澎。
對(duì)于Clock類中的成員函數(shù):

1void setTime(int newS,int newM,int newH){
2//函數(shù)體
3
}

newS, newM,newH這三個(gè)標(biāo)識(shí)符——也就是這個(gè)函數(shù)的三個(gè)形參——其作用域僅僅局限于這個(gè)函數(shù)的函數(shù)體,也就是說(shuō)大括號(hào)范圍之內(nèi)条摸,在程序的任何其他地方都不能引用這個(gè)標(biāo)識(shí)符——所以它們的作用域被稱為函數(shù)原型作用域

局部作用域(塊作用域)

局部作用域這里的 局部作用域 主要指的是同一個(gè)函數(shù)體內(nèi)(可以是主函數(shù)也可以是其他自定義的函數(shù))悦污,使用大括號(hào)分割的不同代碼塊——在我們的日常開(kāi)發(fā)過(guò)程中,較為常見(jiàn)的就是選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的局部作用域屈溉。
這里我們可以舉個(gè)簡(jiǎn)單的例子:

void function(int a){//a的作用域開(kāi)始
    int b=a;//b的作用域開(kāi)始
    cin >> b;
    if (b<0) {//c的作用域開(kāi)始
    int c=b+10;
    for(int i=0;i<c;i++){//i的作用域開(kāi)始
      //循環(huán)體
      }//i的作用域結(jié)束
    //更多代碼
    }//c的作用域結(jié)束
  //b的作用域結(jié)束
}//a的作用域結(jié)束

已經(jīng)知道塞关,函數(shù)形參的作用域,從形參列表開(kāi)始子巾,到函數(shù)體結(jié)束之處結(jié)束帆赢。而對(duì)于 函數(shù)體內(nèi)聲明的變量小压,其作用域從聲明處開(kāi)始,一直到聲明所在的塊結(jié)束的大括號(hào)為止 椰于。所謂 塊 怠益,就是被大括號(hào)括起來(lái)的一段程序。比如if后面的分支瘾婿,for后面的循環(huán)體蜻牢,都是程序中的塊——大括號(hào)之間可以相互嵌套,塊與塊之間也存在著包含關(guān)系——一個(gè)變量的作用域偏陪,從自己被聲明處開(kāi)始抢呆,一直到它所在的塊結(jié)束為止——具有局部作用域的變量也叫 局部變量 。

類作用域
  • 類作用域類可以被看做是一組有名字的成員的集合——具體地說(shuō)笛谦,某一個(gè)類Class的成員member具有類作用域——對(duì)于member的訪問(wèn)抱虐,有以下幾種方式:
  • 如果在class的任意一個(gè)成員函數(shù)中,沒(méi)有聲明同名的局部作用域標(biāo)識(shí)符饥脑,那么這個(gè)成員函數(shù)就可以直接訪問(wèn)成員member恳邀。也就是說(shuō),member在類的成員函數(shù)中都起作用灶轰。
  • 通過(guò)表達(dá)式object.member或者Class::member來(lái)訪問(wèn)(其中object是Class的一個(gè)實(shí)例對(duì)象)谣沸,這正是程序中訪問(wèn)對(duì)象成員的最基本方法。其中Class::member的訪問(wèn)方式適用于類的 靜態(tài)成員 笋颤,相關(guān)內(nèi)容將會(huì)在后續(xù)的課程中介紹乳附。
  • 通過(guò)ptr->member這樣的表達(dá)式——其中ptr是指向Class的某個(gè)實(shí)例對(duì)象的 指針 。關(guān)于指針的內(nèi)容將在后面的章節(jié)詳細(xì)介紹
命名空間(namespace) 作用域

命名空間的語(yǔ)法組織形式如下:

namespace 命名空間名{
    命名空間內(nèi)的各種聲明(函數(shù)聲明伴澄,類聲明等)
}

一個(gè)命名空間自身即確定了一個(gè)作用域许溅,凡是在該命名空間內(nèi)聲明的,不屬于前面提到的各個(gè)作用域的標(biāo)識(shí)符秉版,都屬于這個(gè)命名空間的作用域。在命名空間的內(nèi)部茬祷,可以直接引用當(dāng)前命名空間中聲明的標(biāo)識(shí)符——如果需要引用其他命名空間中的某個(gè)標(biāo)識(shí)符的話清焕,可以使用這樣的語(yǔ)法:

命名空間名::標(biāo)識(shí)符名
namespace NS{
    class Class{
    //類成員
    }
}
NS::Class object;

在標(biāo)識(shí)符前面總是使用這樣的命名空間限定會(huì)顯得過(guò)于冗長(zhǎng)——為此,我們可以使用C++ 中提供的using語(yǔ)句祭犯,形式如下:

using 命名空間名::標(biāo)識(shí)符名;
using namespace 命名空間;

前一種形式將指定的某一個(gè)標(biāo)識(shí)符暴露在當(dāng)前的作用域內(nèi)秸妥,這樣我們就可以直接使用這個(gè)標(biāo)識(shí)符了——而后一種形式則是直接引用整個(gè)命名空間,然后就可以使用這個(gè)命名空間里的所有標(biāo)識(shí)符了沃粗。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末粥惧,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子最盅,更是在濱河造成了極大的恐慌突雪,老刑警劉巖起惕,帶你破解...
    沈念sama閱讀 216,591評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異咏删,居然都是意外死亡惹想,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門督函,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)嘀粱,“玉大人,你說(shuō)我怎么就攤上這事辰狡》孢叮” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,823評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵宛篇,是天一觀的道長(zhǎng)娃磺。 經(jīng)常有香客問(wèn)我,道長(zhǎng)些己,這世上最難降的妖魔是什么豌鸡? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,204評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮段标,結(jié)果婚禮上涯冠,老公的妹妹穿的比我還像新娘。我一直安慰自己逼庞,他們只是感情好蛇更,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著赛糟,像睡著了一般派任。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上璧南,一...
    開(kāi)封第一講書(shū)人閱讀 51,190評(píng)論 1 299
  • 那天掌逛,我揣著相機(jī)與錄音,去河邊找鬼司倚。 笑死豆混,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的动知。 我是一名探鬼主播皿伺,決...
    沈念sama閱讀 40,078評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼盒粮!你這毒婦竟也來(lái)了鸵鸥?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,923評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤丹皱,失蹤者是張志新(化名)和其女友劉穎妒穴,沒(méi)想到半個(gè)月后宋税,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,334評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡宰翅,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評(píng)論 2 333
  • 正文 我和宋清朗相戀三年弃甥,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片汁讼。...
    茶點(diǎn)故事閱讀 39,727評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡淆攻,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出嘿架,到底是詐尸還是另有隱情瓶珊,我是刑警寧澤,帶...
    沈念sama閱讀 35,428評(píng)論 5 343
  • 正文 年R本政府宣布耸彪,位于F島的核電站伞芹,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏蝉娜。R本人自食惡果不足惜唱较,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望召川。 院中可真熱鬧南缓,春花似錦、人聲如沸荧呐。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,672評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)倍阐。三九已至概疆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間峰搪,已是汗流浹背岔冀。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,826評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留概耻,地道東北人楣颠。 一個(gè)月前我還...
    沈念sama閱讀 47,734評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像咐蚯,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子弄贿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評(píng)論 2 354

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

  • 作者:浪里行舟 Fundebug經(jīng)授權(quán)轉(zhuǎn)載春锋,版權(quán)歸原作者所有。 前言 JavaScript 中有一個(gè)被稱為作用域(...
    Fundebug閱讀 7,873評(píng)論 0 15
  • 作用域 作用域差凹,在維基百科上解釋是:在電腦程序設(shè)計(jì)中期奔,作用域(scope侧馅,或譯作有效范圍)是名字(name)與實(shí)體...
    禮知白閱讀 242評(píng)論 0 0
  • 作用域是JavaScript最重要的概念之一,想要學(xué)好JavaScript就需要理解JavaScript作用域和作...
    筆墨是小舟閱讀 224評(píng)論 0 1
  • 一呐萌、JavaScript作用域 任何程序設(shè)計(jì)語(yǔ)言都有作用域的概念馁痴,簡(jiǎn)單的說(shuō),作用域就是變量與函數(shù)的可訪問(wèn)范圍肺孤,即作...
    沐向閱讀 222評(píng)論 0 0
  • 任何程序設(shè)計(jì)語(yǔ)言都有作用域的概念罗晕,簡(jiǎn)單的說(shuō),作用域就是變量與函數(shù)的可訪問(wèn)范圍赠堵,即作用域控制著變量與函數(shù)的可見(jiàn)性和生...
    Alone灬旅途閱讀 303評(píng)論 0 0