子類在繼承父類時,其實所有非靜態成員變數都繼承都過來了,即使是private也繼承。只是編譯器把該隱藏的都隱藏了,我們訪問不到。
用**來驗證一下:
可以看到son類的大小為16位元組,說明他把父類中的所有屬性都繼承了。
我們可以用命令列提示工具來看一下son類的結構圖。
開啟安裝目錄中的「開發人員命令提示符」。
依次輸入以下命令:
如果全部輸入正確,結果如下:
我們注意看這一塊:
這裡看到基類是father,son佔16位元組,還有各個成員等。
繼承中的物件模型
1 在子類物件構造時,需要呼叫父類建構函式對其繼承得來的成員進行初始化 2 在子類物件析構時,需要呼叫父類析構函式對其繼承得來的成員進行清理 繼承中的構造析構呼叫原則 建構函式執行順序 1 先執行父類的建構函式 2 再執行子類的建構函式 析構函式執行順序 1 先執行子類析構函式 2 再執行父類析構函...
繼承中的物件模型
繼承中的物件模型 問題 從父類繼承過來的成員,哪些屬於子類物件中?示例 include using namespace std 繼承中的物件模型 class base class son public base 利用開發人員命令提示工具檢視物件模型 跳轉碟符 f 跳轉檔案路徑 cd 具體路徑下 檢視...
C 虛擬繼承中的物件模型
最近,從師兄那裡聽到一道據說是某國內知名 it公司的面試題,有關 c 虛擬繼承的。include using namespace std class t class a virtual public t class b virtual public t class c public a,public...