構造函數與析構函數之比較

 

構造函數與析構函數的比較表:

名稱

功能

是否可重載

是否可繼承

是否可定義爲虛函數

是否可帶參數

是否有返回值

構造函數

初始化、自動調用

可重載

不可繼承

不可定義爲虛函數

可帶參數

無返回值

析構函數

用於清除(實例、內存回收)、自動調用

不可重載(當定義爲虛函數時,相當於隱性繼承)

不可繼承

可定義爲虛函數

不可帶參數

無返回值

 

注:重載指函數名相同、參數列表(參數個數或數據類型)不同,與返回值無關。

       繼承指基類函數與派生類(子類)函數完全相同。

附:內聯函數、構造函數和靜態成員函數不可定義爲虛函數。

爲什麼靜態成員函數不可定義爲虛函數?(反證法)

答:如果定義爲虛函數,那麼它就是動態綁定的,也就是在派生類中可以被覆蓋的,這與靜態成員函數的定義本身就是相矛盾的。

發佈了40 篇原創文章 · 獲贊 8 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章