虛函數中“虛”的理解

1、首先回顧一下虛函數的概念

虛函數:不代表一定需要子類去實現,而是可以通過基類的指針調用子類的此函數。

純虛函數:一定需要子類去實現它,它定義的僅僅是一組行爲,擁有純虛函數的類即爲抽象類,只能當做基類,無法實例化。

2、爲什麼叫“虛”函數呢

正是這個函數調用的不可預測性,而這種不可預測性即函數的調用在編譯階段無法確定,待執行時才能確定函數調用的真正地址

3、爲什麼當做基類的類的析構函數一定要是“虛函數”?

析構函數執行時先調用派生類的析構函數,其次才調用基類的析構函數。如果析構函數不是虛函數,而程序執行時又

通過基類的指針去銷燬派生類的動態對象,那麼用delete銷燬對象時,只調用了基類的析構函數,未調用派生類的

析構函數。這樣會造成銷燬對象不完全、內存泄露。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章