C++面向?qū)ο蟾呒?jí)編程 第五周 博覽網(wǎng)

C++對(duì)象模型

  • (32位系統(tǒng)中)對(duì)于類成員如果是空類占1個(gè)字節(jié),如果有虛函數(shù)谓媒,每個(gè)虛函數(shù)會(huì)有一個(gè)vptr指針占4個(gè)字節(jié)淆院,如果有靜態(tài)類成員變量,其在global date memory中句惯,在類實(shí)例化中不單獨(dú)占用內(nèi)存土辩。類的成員函數(shù)不占用類的大小。
    類在內(nèi)存中占用的空間與成員變量的順序也有關(guān)系抢野。同時(shí)遵循數(shù)據(jù)對(duì)齊原則拷淘。
  • 如果函數(shù)沒有使用關(guān)鍵字virtual修飾,則程序?qū)⒏鶕?jù)對(duì)象指孤、引用類型或指針類型調(diào)用函數(shù)启涯。如果使用virtual修飾函數(shù)則程序?qū)⒏鶕?jù)引用或者指針 指向的對(duì)象類型 進(jìn)行選擇方法。但是將函數(shù)定義成virtual會(huì)增加程序的空間和時(shí)間開銷恃轩。在基類方法的聲明中使用關(guān)鍵字virtual可是該方法在基類以及所有的派生類(包括從派生類派生出來的類)中是虛的结洼。
    每一個(gè)包含虛函數(shù)的類都有一個(gè)隱含的vptr指針(不論有幾個(gè)虛函數(shù)都只有一個(gè)指針),指向vtbl(虛函數(shù)表叉跛,有幾個(gè)虛函數(shù)虛函數(shù)表就包括幾個(gè)函數(shù)指針)松忍,而虛函數(shù)表指向具體的實(shí)現(xiàn)函數(shù)的入口地址。
  • 為基類聲明一個(gè)虛析構(gòu)函數(shù)是一種慣例(除非它不做基類)筷厘,這樣可以確保釋放派生對(duì)象時(shí)按正確的順序調(diào)用析構(gòu)函數(shù)鸣峭。如果虛構(gòu)函數(shù)不是虛的則指揮調(diào)用指針類型的析構(gòu)函數(shù),而不會(huì)調(diào)用指針指向的類型的析構(gòu)函數(shù)酥艳,這樣會(huì)出現(xiàn)錯(cuò)誤摊溶。
  • 在派生類中的虛函數(shù)調(diào)用基類的同名虛函數(shù)時(shí)需要使用基類類名域作用符,否則會(huì)出現(xiàn)無限循環(huán)調(diào)用充石。
  • 成員函數(shù)的const 和non-const版本構(gòu)成函數(shù)的重載莫换;但是返回值類型不構(gòu)成重載。當(dāng)成員函數(shù)同時(shí)存在兩種版本時(shí)赫冬,const object只能調(diào)用const版本浓镜,non-const object只能調(diào)用non-const版本。
  • new表達(dá)式的作用步驟:
    1.調(diào)用operator new或者operator new[]標(biāo)準(zhǔn)庫(kù)函數(shù)劲厌,分配內(nèi)存空間
    2.運(yùn)行相應(yīng)構(gòu)造器構(gòu)造對(duì)象
    3.返回指向該對(duì)象的指針
  • delete表達(dá)式的作用步驟:
    1.對(duì)指針指向的對(duì)象執(zhí)行析構(gòu)函數(shù)
    2.調(diào)用名為operator delete或者operator delete[]的庫(kù)函數(shù)釋放內(nèi)存空間。
  • 因?yàn)閚ew發(fā)生的對(duì)象構(gòu)造之前听隐,delete發(fā)生在對(duì)象銷毀之后补鼻,所以這兩個(gè)重載的成員函數(shù)都是隱式靜態(tài)的,他們不能操作類的任何數(shù)據(jù)成員。
    關(guān)于new與delete的重載
new_delete_1.png
new_delete_2.png
new_delete_3.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末风范,一起剝皮案震驚了整個(gè)濱河市咨跌,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌硼婿,老刑警劉巖锌半,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異寇漫,居然都是意外死亡刊殉,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門州胳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來记焊,“玉大人,你說我怎么就攤上這事栓撞”槟ぃ” “怎么了?”我有些...
    開封第一講書人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵瓤湘,是天一觀的道長(zhǎng)瓢颅。 經(jīng)常有香客問我,道長(zhǎng)弛说,這世上最難降的妖魔是什么挽懦? 我笑而不...
    開封第一講書人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮剃浇,結(jié)果婚禮上巾兆,老公的妹妹穿的比我還像新娘。我一直安慰自己虎囚,他們只是感情好角塑,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著淘讥,像睡著了一般圃伶。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蒲列,一...
    開封第一講書人閱讀 49,749評(píng)論 1 289
  • 那天窒朋,我揣著相機(jī)與錄音,去河邊找鬼蝗岖。 笑死侥猩,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的抵赢。 我是一名探鬼主播欺劳,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼唧取,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了划提?” 一聲冷哼從身側(cè)響起枫弟,我...
    開封第一講書人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎鹏往,沒想到半個(gè)月后淡诗,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡伊履,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年韩容,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片湾碎。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡宙攻,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出介褥,到底是詐尸還是另有隱情座掘,我是刑警寧澤,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布柔滔,位于F島的核電站溢陪,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏睛廊。R本人自食惡果不足惜形真,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望超全。 院中可真熱鬧咆霜,春花似錦、人聲如沸嘶朱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)疏遏。三九已至脉课,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間财异,已是汗流浹背倘零。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留戳寸,地道東北人呈驶。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像疫鹊,于是被迫代替她去往敵國(guó)和親俐东。 傳聞我的和親對(duì)象是個(gè)殘疾皇子跌穗,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

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