C++中的成員變量和成員函數(shù)

C++中的類(lèi)有兩個(gè)成分:

(1)成員變量

成員變量按照作用域分為靜態(tài)成員變量和非靜態(tài)成員變量骨宠,C++中成員變量的默認(rèn)控制符是private,這點(diǎn)與Java不太一樣纵装。;按照控制符又可以分為public, private, protected扇苞;

靜態(tài)成員變量本質(zhì)上只是說(shuō)明了該變量的持續(xù)性和作用域欺殿,而不是定義

靜態(tài)成員變量不能重復(fù)定義,故靜態(tài)成員變量不能在類(lèi)中或者構(gòu)造函數(shù)中初始化鳖敷,因?yàn)閷?duì)象創(chuàng)建的時(shí)候會(huì)執(zhí)行一次脖苏;靜態(tài)成員變量一般在類(lèi)的外部進(jìn)行初始化,并且要放在所有代碼塊之外(全局作用域)定踱。如果靜態(tài)成員變量是const類(lèi)型則可以在類(lèi)定義中初始化棍潘。

靜態(tài)成員變量的初始化格式 type class::variable=value;

非靜態(tài)成員變量在對(duì)象創(chuàng)建時(shí)(分配內(nèi)存)才被定義,并由構(gòu)造函數(shù)初始化

(2)成員函數(shù)

C++中的成員函數(shù)定義的位置有兩種:

(1)定義在類(lèi)中

優(yōu)點(diǎn):簡(jiǎn)單方便明了

缺點(diǎn):類(lèi)定義包含類(lèi)實(shí)現(xiàn)崖媚,可定制性差

(2)定義在類(lèi)外

優(yōu)點(diǎn):可定制性好

缺點(diǎn):每次定義的時(shí)候要加上類(lèi)名class:: class_function(){}

同樣的亦歉,按照作用域來(lái)分,有靜態(tài)成員函數(shù)和非晶態(tài)成員函數(shù)畅哑,按照控制符來(lái)分肴楷,有public, private, protected

靜態(tài)成員函數(shù)在類(lèi)沒(méi)有定義前就可以使用,故靜態(tài)成員函數(shù)無(wú)法訪問(wèn)非靜態(tài)成員變量荠呐,它只能訪問(wèn)靜態(tài)成員函數(shù)內(nèi)部定義的變量或者靜態(tài)成員變量

Java中的類(lèi)是可以訪問(wèn)私有成員變量的赛蔫;

靜態(tài)成員函數(shù)要想訪問(wèn)私有成員變量绷杜,有兩種方案:

方案一:將所有訪問(wèn)的數(shù)據(jù)都定義成靜態(tài)成員變量;

方案二

class a

?{?

public:? static FunctionA(a* _a)?

? ? {? ? a-> menber = 1;? }??

? ? private:? int menber;?

}

靜態(tài)成員函數(shù)與非靜態(tài)成員函數(shù)的根本區(qū)別是:非靜態(tài)成員函數(shù)有 this 指針濒募,而靜態(tài)成員函數(shù)沒(méi)有 this 指針鞭盟。由此決定了靜態(tài)成員函數(shù)不能訪問(wèn)本類(lèi)中的非靜態(tài)成員

注:友元

成員函數(shù)是屬于類(lèi)的,而類(lèi)中的私有成員變量只有成員函數(shù)才能訪問(wèn)瑰剃,非成員函數(shù)想訪問(wèn)私有成員函數(shù)齿诉,可以在函數(shù)定義前加上friend。成員函數(shù)的調(diào)用形式是

class A{}晌姚;

A a;

a.function();

非成員函數(shù)可以直接調(diào)用粤剧;

在對(duì)某些成員函數(shù)多次調(diào)用時(shí),由于參數(shù)傳遞挥唠,類(lèi)型檢查和安全性檢查等都需要時(shí)間開(kāi)銷(xiāo)抵恋,而影響程序的運(yùn)行效率。為了解決上述問(wèn)題宝磨,提出一種使用友元的方案弧关。友元是一種定義在類(lèi)外部的普通函數(shù),但它需要在類(lèi)體內(nèi)進(jìn)行說(shuō)明唤锉,為了與該類(lèi)的成員函數(shù)加以區(qū)別世囊,在說(shuō)明時(shí)前面加以關(guān)鍵字friend。友元不是成員函數(shù)窿祥,但是它可以訪問(wèn)類(lèi)中的私有成員株憾。友元的作用在于提高程序的運(yùn)行效率,但是晒衩,它破壞了類(lèi)的封裝性和隱藏性嗤瞎,使得非成員函數(shù)可以訪問(wèn)類(lèi)的私有成員

注:Java與C++中關(guān)于static的區(qū)別與聯(lián)系

java中的“static”和C++中的“static”含義并不完全一樣L怠1雌妗!C++中的關(guān)鍵字static被復(fù)寫(xiě)了三次跛锌,有三種含義弃秆,分別為:

1:變量一直存在

2:不能被其他文件訪問(wèn)的全局變量和函數(shù)

3:屬于類(lèi)且不屬于對(duì)象的全局變量和函數(shù)

在一大部分人心中可能只把它理解為“靜態(tài)”的意思届惋,實(shí)際上Java僅僅取了C++中static的最后一個(gè)含義:即髓帽,不與類(lèi)的實(shí)例相關(guān)聯(lián),僅與類(lèi)相關(guān)聯(lián)脑豹。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末郑藏,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子瘩欺,更是在濱河造成了極大的恐慌必盖,老刑警劉巖拌牲,帶你破解...
    沈念sama閱讀 219,039評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異歌粥,居然都是意外死亡塌忽,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)失驶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)土居,“玉大人,你說(shuō)我怎么就攤上這事嬉探〔烈” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,417評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵涩堤,是天一觀的道長(zhǎng)眷蜓。 經(jīng)常有香客問(wèn)我,道長(zhǎng)胎围,這世上最難降的妖魔是什么吁系? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,868評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮白魂,結(jié)果婚禮上垮抗,老公的妹妹穿的比我還像新娘。我一直安慰自己碧聪,他們只是感情好冒版,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著逞姿,像睡著了一般辞嗡。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上滞造,一...
    開(kāi)封第一講書(shū)人閱讀 51,692評(píng)論 1 305
  • 那天续室,我揣著相機(jī)與錄音,去河邊找鬼谒养。 笑死挺狰,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的买窟。 我是一名探鬼主播丰泊,決...
    沈念sama閱讀 40,416評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼始绍!你這毒婦竟也來(lái)了瞳购?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,326評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤亏推,失蹤者是張志新(化名)和其女友劉穎学赛,沒(méi)想到半個(gè)月后年堆,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,782評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡盏浇,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評(píng)論 3 337
  • 正文 我和宋清朗相戀三年变丧,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片绢掰。...
    茶點(diǎn)故事閱讀 40,102評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡锄贷,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出曼月,到底是詐尸還是另有隱情谊却,我是刑警寧澤,帶...
    沈念sama閱讀 35,790評(píng)論 5 346
  • 正文 年R本政府宣布哑芹,位于F島的核電站炎辨,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏聪姿。R本人自食惡果不足惜碴萧,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望末购。 院中可真熱鬧破喻,春花似錦、人聲如沸盟榴。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,996評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)擎场。三九已至羽德,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間迅办,已是汗流浹背宅静。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,113評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留站欺,地道東北人姨夹。 一個(gè)月前我還...
    沈念sama閱讀 48,332評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像矾策,于是被迫代替她去往敵國(guó)和親磷账。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評(píng)論 2 355

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