求底層大佬解釋一下基本原理
1.一個類中有另一個類作為成員。
先構造成員類再構造本類
先析構本類再析構成員類
2.一個類繼承自父類
先構造父類再構造子類
先析構子類再析構父類
聽說是因為壓堆疊出堆疊的原因,但是一想如果在堆區創建物件呢?
所以因為堆疊特性的說法到底對不對?
uj5u.com熱心網友回復:
跟堆疊沒多大關系,這個是由編譯器決定的呼叫次序。uj5u.com熱心網友回復:
壓堆疊出堆疊只是堆疊操作,跟堆區創建物件沒有關系,這里的壓堆疊出堆疊不是記憶體分配在堆疊上和堆上那個堆疊,是一種資料結構的描述。uj5u.com熱心網友回復:
繼承:父類的成員變數被子類所繼承,一定程度上子類的記憶體大小有父類影響的因素。
析構的時候正好相反
組合:
同理繼承
如何時繼承+組合,類本身還是最后構造,至于組合和繼承哪一個先構造由編譯器決定,大部分是先父類構造,再次是類成員構造,最后自己本身構造。
uj5u.com熱心網友回復:
1.一個類中有另一個類作為成員。先構造成員類再構造本類
先析構本類再析構成員類
==================
這個未必把?取決于你的成員在類的宣告方式;
很多情況在h檔案中只是宣告; 在建構式中才定義。這樣就先執行構造初始化;然后執行建構式;成員在建構式中創建;
解構式按以下順序:和構造有關;
解構式體;建構式初始化逆程序;基類解構式;
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/24085.html
標籤:C++ 語言
上一篇:請求幫助TT TT
下一篇:c語言 error: expected '; '. '.' or ')'before 'char' 怎么解決???
