c 物件模型

2021-08-16 00:12:15 字數 332 閱讀 1226

1. 子類的資料是父類優先。

2.虛函式位址是程式執行時候動態申請的,非虛函式是編譯階段就確定了的。彙編**可以看出來。

所以虛函式取位址列印出來的不是**段的位址,而是在虛表中的序號。

3.子類虛函式是父類優先,如果new乙個子類賦給父類指標,那麼子類的會替代父類的同名虛函式。

但是,對於預設引數而言,虛函式還是會呼叫父類的,因為預設引數是在編譯時候就確定了的。

4.父類的析構函式要是虛的,不然子類的析構不呼叫,可能導致資源沒釋放。

5.對於公用的標頭檔案,為了相容修改,增加介面時候保持虛表的大小不變,需要預留介面。

另外需要在末尾加新的虛函式。

c 物件模型

很久之前就想總結一下c 的記憶體使用機制。直到現在剛考完試之制,去實習之前,才有時間完成這事。1.程式使用記憶體區 乙個程式占用的記憶體區一般分為5種 1 全域性 靜態資料區 儲存全域性變數及靜態變數 包括全域性靜態變數和區域性靜態變數 2 常量資料區 儲存程式中的常量字串等。3 區 儲存程式的 4...

C 物件模型

很久之前就想總結一下c 的記憶體使用機制。直到現在剛考完試之制,去實習之前,才有時間完成這事。1.程式使用記憶體區 乙個程式占用的記憶體區一般分為5種 1 全域性 靜態資料區 儲存全域性變數及靜態變數 包括全域性靜態變數和區域性靜態變數 2 常量資料區 儲存程式中的常量字串等。3 區 儲存程式的 4...

C 物件模型

簡單物件模型 乙個c 物件儲存了所有指向成員的指標,而成員本身不儲存在物件中。也就是說不論資料成員還是成員函式,也不論這個是普通成員函式還是虛函式,它們都儲存在物件本身之外,同時物件儲存指向它們的指標。示意圖如右。簡單物件模型對於編譯器來說雖然極盡簡單,但同時付出的代價是空間和執行期的效率.顯而易見...