Boolan c++對象模型_內(nèi)存對齊_總結(jié)

前言:

c++ language博大精深狮暑,需要我們透過現(xiàn)象看清本質(zhì)才是正道鸡挠。不積硅步,無以至千里搬男;不積小流拣展,無以成江海。堅持總結(jié)缔逛,堅持寫作瞎惫。下面是對第四周的作業(yè)的總結(jié)。

1. 對象模型圖

圖1 對象模型圖

2. 內(nèi)存對齊

以下結(jié)果來自vs2017 x86译株。Fruit占32字節(jié)瓜喇,Apple占40字節(jié)。


圖2 Fruit
圖3 Apple

3. 一些相關(guān)知識點總結(jié)

(1) 數(shù)據(jù)類型所占字節(jié):long int 在windows x64下也是占4個字節(jié)歉糜,windows x64下只有指針會擴展為8字節(jié)乘寒,其他的數(shù)據(jù)類型都和32位下是一致的。
(2) 虛函數(shù)表中虛函數(shù)的地址是按照類中聲明順序排列的匪补,對于派生類沒有覆蓋的虛函數(shù)伞辛,基類的虛函數(shù)地址放在前面烂翰,派生類的虛函數(shù)地址放在后面。對于派生類覆蓋定義的虛函數(shù)蚤氏,則在虛函數(shù)表中甘耿,存放在原來基類中該虛函數(shù)的地址放置的位置上。
(3) 虛函數(shù)表最后有一個結(jié)束節(jié)點竿滨,如果值是0佳恬,那么表示是這個對象的最后一個虛函數(shù)表;如果是1于游,那么表示后面還有虛函數(shù)表毁葱。(這樣設(shè)計應(yīng)該是為了多重繼承,方便查找虛函數(shù)贰剥。如果多個基類含有虛函數(shù)表倾剿,那么派生類對象也會相應(yīng)有多個虛函數(shù)指針,指向各自虛函數(shù)表蚌成。)
(4)多重繼承前痘,派生類的成員函數(shù)放在第一個基類的虛函數(shù)表中,按照聲明順序排列父類担忧。子類的虛函數(shù)會覆蓋相應(yīng)的含有這個虛函數(shù)的各個父類的虛函數(shù)表中的位置际度。
(5)含有虛函數(shù)的類對象有各自的虛函數(shù)表,虛函數(shù)表不共用涵妥,虛函數(shù)共用乖菱。(這樣設(shè)計的好處,之后再思考)
(6) 不同編譯器和操作系統(tǒng)下蓬网,對象的內(nèi)存布局和所占空間大小有所不同窒所。
(7) RTTI在運行時的類型識別,eg, typeid(obj).name() 會返回一個字符串帆锋,表示obj的類型吵取,如class Fruit。不同編譯器返回的字符串會有區(qū)別锯厢。type_info的指針存放在虛函數(shù)表中第一個地址的前面皮官,第一個地址是第一個虛函數(shù)的地址 。兩個運算符:typeid实辑,dynamic_cast.
(8)內(nèi)存對齊捺氢,取類中成員最大占用的大小來對齊。

ps. 時間緊迫剪撬,以后會繼續(xù)補充摄乒。另外c++筆記3中對原型模式的理解很有偏差,后面會做更改。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末馍佑,一起剝皮案震驚了整個濱河市斋否,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌拭荤,老刑警劉巖茵臭,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異舅世,居然都是意外死亡旦委,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門歇终,熙熙樓的掌柜王于貴愁眉苦臉地迎上來社证,“玉大人逼龟,你說我怎么就攤上這事评凝。” “怎么了腺律?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵奕短,是天一觀的道長。 經(jīng)常有香客問我匀钧,道長翎碑,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任之斯,我火速辦了婚禮日杈,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘佑刷。我一直安慰自己莉擒,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布瘫絮。 她就那樣靜靜地躺著涨冀,像睡著了一般。 火紅的嫁衣襯著肌膚如雪麦萤。 梳的紋絲不亂的頭發(fā)上鹿鳖,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天,我揣著相機與錄音壮莹,去河邊找鬼翅帜。 笑死,一個胖子當(dāng)著我的面吹牛命满,可吹牛的內(nèi)容都是我干的藕甩。 我是一名探鬼主播,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼狭莱!你這毒婦竟也來了僵娃?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤腋妙,失蹤者是張志新(化名)和其女友劉穎默怨,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體骤素,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡匙睹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了济竹。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片痕檬。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖送浊,靈堂內(nèi)的尸體忽然破棺而出梦谜,到底是詐尸還是另有隱情,我是刑警寧澤袭景,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布唁桩,位于F島的核電站,受9級特大地震影響耸棒,放射性物質(zhì)發(fā)生泄漏荒澡。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一与殃、第九天 我趴在偏房一處隱蔽的房頂上張望单山。 院中可真熱鬧,春花似錦幅疼、人聲如沸米奸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽躏升。三九已至,卻和暖如春狼忱,著一層夾襖步出監(jiān)牢的瞬間膨疏,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工钻弄, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留佃却,地道東北人。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓窘俺,卻偏偏與公主長得像饲帅,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,577評論 2 353

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

  • 1. 結(jié)構(gòu)體和共同體的區(qū)別灶泵。 定義: 結(jié)構(gòu)體struct:把不同類型的數(shù)據(jù)組合成一個整體育八,自定義類型。共同體uni...
    breakfy閱讀 2,123評論 0 22
  • 一個博客赦邻,這個博客記錄了他讀這本書的筆記髓棋,總結(jié)得不錯』讨蓿《深度探索C++對象模型》筆記匯總 1. C++對象模型與內(nèi)...
    Mr希靈閱讀 5,583評論 0 13
  • 1. C++基礎(chǔ)知識點 1.1 有符號類型和無符號類型 當(dāng)我們賦給無符號類型一個超出它表示范圍的值時按声,結(jié)果是初始值...
    Mr希靈閱讀 17,980評論 3 82
  • 一、 C/C++程序基礎(chǔ) 面試例題1——分析代碼寫輸出(一般賦值語句的概念和方法)恬吕。 面試例題2—...
    LuckTime閱讀 1,972評論 2 42
  • 繼續(xù)第三篇的詩的發(fā)展和流派铐料。這部分包括唐詩渐裂、宋詩和清詩,其中唐又細分出初中盛行晚四個時期余赢。 初唐:開國至武則天時芯义,...
    劉小麥同學(xué)閱讀 466評論 0 1