(A)是析構函數的特征.
A. ?壹個類中只能定義壹個析構函數
B.? 析構函數與類名不同
C.? 析構函數的定義只能在類體內
D.? 析構函數可以有壹個或多個參數
壹、
析構函數(destructor) 與構造函數相反,當對象結束其生命周期,如對象所在的函數已調用完畢時,系統自動執行析構函數。
析構函數往往用來做“清理善後” 的工作(例如在建立對象時用new開辟了壹片內存空間,delete會自動調用析構函數後釋放內存)。
與構造函數相反,當對象結束其生命周期,如對象所在的函數已調用完畢時系統會自動執行析構函數。
以C++語言為例:析構函數名也應與類名相同,只是在函數名前面加壹個位取反符例如~stud( ),以區別於構造函數。
它不能帶任何參數,也沒有返回值(包括void類型)。只能有壹個析構函數不能重載。
如果用戶沒有編寫析構函數,編譯系統會自動生成壹個缺省的析構函數(即使自定義了析構函數,編譯器也總是會為我們合成壹個析構函數。
並且如果自定義了析構函數,編譯器在執行時會先調用自定義的析構函數再調用合成的析構函數),它也不進行任何操作。所以許多簡單的類中沒有用顯式的析構函數。