23 虛析構函式

2021-10-06 20:16:16 字數 359 閱讀 2322

通過基類的指標刪除派生類的物件時,通常情況下只呼叫基類的析構函式。

但是刪除乙個派生類的物件時,應該先呼叫派生類的析構函式,然後呼叫基類的析構函式。

派生類的析構函式可以virtual不進行宣告

通過基類的指標刪除派生類物件時,首先呼叫派生類的析構函式,然後呼叫基類的析構函式。

class

son;};

class

grandson

:public son;}

;int

main()

//輸出:bye from son

//所以並沒有執行grandson::~grandson()

C 虛析構函式 純虛析構函式

虛析構函式 析構函式的工作方式是 最底層的派生類 most derived class 的析構函式最先被呼叫,然後呼叫每乙個基類的析構函式。因為在c 中,當乙個派生類物件通過使用乙個基類指標刪除,而這個基類有乙個非虛的析構函式,則結果是未定義的。執行時比較有代表性的後果是物件的派生部分不會被銷毀。然...

C 虛析構函式 純虛析構函式

虛析構函式 析構函式的工作方式是 最底層的派生類 most derived class 的析構函式最先被呼叫,然後呼叫每乙個基類的析構函式。因為在c 中,當乙個派生類物件通過使用乙個基類指標刪除,而這個基類有乙個非虛的析構函式,則結果是未定義的。執行時比較有代表性的後果是物件的派生部分不會被銷毀。然...

C 虛析構函式 純虛析構函式

虛析構函式 析構函式的工作方式是 最底層的派生類 most derived class 的析構函式最先被呼叫,然後呼叫每乙個基類的析構函式。因為在c 中,當乙個派生類物件通過使用乙個基類指標刪除,而這個基類有乙個非虛的析構函式,則結果是未定義的。執行時比較有代表性的後果是物件的派生部分不會被銷毀。然...