深入探索c++對象模型讀書筆記第一章

發(fā)現(xiàn)昨天一天讀完第一章.也只是囫圇吞棗.也可能是自己代碼打的太少了,有些地方不可以理解.但是解決了好多我之前的疑問.為什么c++指針儲存的地址,卻需要類型.struct和class的區(qū)別到底是什么.
有寫地方有點亂...不過還是忍住讀完了...
感覺是c++primer第十五章的擴展.
首先講了對象模型在內(nèi)存中的樣子.畫圖有點麻煩之前也有人寫過.所以把他的貼上來.我覺得寫的很好...
吳秦的博客

  • 基類武羅在繼承串鏈中被派生多少次,永遠只有一個實例(subobject),例如virtual ios base class中的一個實例
    關(guān)鍵詞差異.
    struct和class...其實就我而言我是不喜歡寫struct的...沒有為什么..就像太陽總是在明天早上升起來一樣...
c++支持多態(tài)的方法:
  • 把一個派生類指針轉(zhuǎn)化成一個基類指針.
    這樣會剪切掉基類的部分.
  • 通過虛函數(shù)機制
  • 經(jīng)由dynamic_casttypeid運算符
    多態(tài)的主要用途是經(jīng)由一個公共的接口來影響類型的封裝,這個借口通常定義在一個抽象的基類中.
指針類型會交到編譯器如何解釋某個特定地址中的內(nèi)存內(nèi)容及其大小.
Bear b;
Zooanimal *pz = &b;
Bear *pb = &b;
/*
pb所蘊含的地址包含整個Bear object,pz所云航的地址只包含Bear 中的
Zooanimal subobject
Zooanimal是基類,Bear是派生類
除了在Zooanimal中出現(xiàn)的成員pz無法操作任何member
唯一例外是操作virtual*/

一個指針和一個引用之所以支持多態(tài),是因為它們不引起內(nèi)存中的任何"與類型有關(guān)的內(nèi)存委托操作";會受到改變的只是他們所指向的內(nèi)存的"大小和內(nèi)容解釋方式".
無知就是幸福..沒讀之前.我還感覺我這塊賊6......讀過后疑問更多.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容