構造函數 ,是一種特殊的方法。主要用來在創建對象時初始化對象, 即為對象成員變量賦初始值,總與new運算符一起使用在創建對象的語句中。特別的一個類可以有多個構造函數 ,可根據其參數個數的不同或參數類型的不同來區分它們 即構造函數的重載。
析構函數(destructor) 與構造函數相反,當對象結束其生命周期時(例如對象所在的函數已調用完畢),系統自動執行析構函數。析構函數往往用來做“清理善后” 的工作(例如在建立對象時用new開辟了一片內存空間,delete會自動調用析構函數后釋放內存)。
析構函數如果我們不寫的話,C++ 會幫我們自動的合成一個,就是說:C++ 會自動的幫我們寫一個析構函數。很多時候,自動生成的析構函數可以很好的工作,但是一些重要的事跡,就必須我們自己去寫析構函數。
析構函數和構造函數是一對。構造函數用於創建對象,而析構函數是用來撤銷對象。簡單的說:一個對象出生的時候,使用構造函數,死掉的時候,使用析構函數。
構造函數與析構函數的調用順序:
父類構造->子類構造->子類析構->父類析構
或 父類構造->成員變量構造->子類構造->子類析構->成員變量析構->父類析構
即:


1、基類沒有缺省構造函數,派生類必須要在初始化列表中顯式給出基類名和參數列表。
2、基類沒有定義構造函數,則派生類也可以不用定義,全部使用缺省構造函數。
3、基類定義了帶有形參表構造函數,派生類就一定要定義構造函數。
