爲什麼基類的析構函數必須爲虛函數的原因-個人理解

假如一個基類類型的指針指向了一個派生類的對象,如果需要將指針delete時,假如基類的析構函數不爲虛函數,這時就會只調用基類的析構函數,而指針指向的是派生類的對象,派生類的對象不包含基類的析構函數,這時候就像是拆房子的時候只把地基給拆了,地基上的建築仍然存在。

而如果基類的析構函數爲虛函數時,在delete時,編譯器就會解析指針指向的對象是誰,這時候如果指向的是派生類的對象,就會先調用派生類的析構函數,再調用基類的析構函數。

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