什麼是用C++寫虛析構函數,這樣的用法:虛擬析構函數的用法是什麼?
class CMyObject
{
CMyObject(void) {};
virtual ~CMyObject(void) {};
}
什麼是用C++寫虛析構函數,這樣的用法:虛擬析構函數的用法是什麼?
class CMyObject
{
CMyObject(void) {};
virtual ~CMyObject(void) {};
}
所以,你可以有不同的破壞規模(和解除)正確的CMyObject
子類對象的數組。
虛擬析構函數允許CMyObject
的子類覆蓋~CMyObject(void)
並正確地清除它擁有的任何附加屬性。例如,如果將CMyObject擴展爲擁有指向某個數組的指針,併爲該數組分配內存,則必須在子類的析構函數中清理它,因爲它不會由析構函數處理的超類(CMyObject)。
[何時使用虛擬析構函數?](http://stackoverflow.com/questions/461203/when-to-use-virtual-destructors) – songyuanyao