析構(gòu)函數(shù)默認(rèn)是虛函數(shù)嗎 為什么基類的析構(gòu)函數(shù)定義為虛函數(shù)?
為什么基類的析構(gòu)函數(shù)定義為虛函數(shù)?我們經(jīng)常使用基類指針指向派生類對象,然后通過delete基類指針刪除派生類對象。此時,為了確保派生類對象可以被完全析構(gòu)函數(shù),我們自然需要基類析構(gòu)函數(shù)是一個虛函數(shù)。這樣
為什么基類的析構(gòu)函數(shù)定義為虛函數(shù)?
我們經(jīng)常使用基類指針指向派生類對象,然后通過delete基類指針刪除派生類對象。此時,為了確保派生類對象可以被完全析構(gòu)函數(shù),我們自然需要基類析構(gòu)函數(shù)是一個虛函數(shù)。這樣,在刪除的時候會調(diào)用派生類析構(gòu)函數(shù),否則只調(diào)用基類析構(gòu)函數(shù),派生類不能完全析構(gòu)函數(shù)出來的部分。
C 中,為什么需要定義析構(gòu)函數(shù)為虛函數(shù)?
析構(gòu)函數(shù)不一定是虛擬函數(shù)。定義虛函數(shù)的目的是使用父類來管理子類。當(dāng)父類被解構(gòu)時,它將調(diào)用子類的析構(gòu)函數(shù)(實(shí)際上,它是多態(tài)的),并直接使用父類來釋放子類。