在繼承裡面有乙個比較重要的點,虛析構函式,這個主要就是為了解決派生類指標轉化為基類指標的時候出現的析構的問題
例如以下**:
#include
using
namespace std;
class
testbase};
class
test
:public testbase};
intmain()
就像上面的**,析構的時候只會呼叫testbase的析構函式,但是test的析構函式就沒有呼叫,所以這個時候我們的額處理方式就是在析構函式前面加上virtual,使他變成虛析構函式,這個時候test類的析構函式就會重寫析構函式,就可以同時呼叫這兩個析構函式了。
#include
using
namespace std;
class
testbase};
class
test
:public testbase};
intmain()
C 虛析構函式 純虛析構函式
虛析構函式 析構函式的工作方式是 最底層的派生類 most derived class 的析構函式最先被呼叫,然後呼叫每乙個基類的析構函式。因為在c 中,當乙個派生類物件通過使用乙個基類指標刪除,而這個基類有乙個非虛的析構函式,則結果是未定義的。執行時比較有代表性的後果是物件的派生部分不會被銷毀。然...
C 虛析構函式 純虛析構函式
虛析構函式 析構函式的工作方式是 最底層的派生類 most derived class 的析構函式最先被呼叫,然後呼叫每乙個基類的析構函式。因為在c 中,當乙個派生類物件通過使用乙個基類指標刪除,而這個基類有乙個非虛的析構函式,則結果是未定義的。執行時比較有代表性的後果是物件的派生部分不會被銷毀。然...
C 虛析構函式 純虛析構函式
虛析構函式 析構函式的工作方式是 最底層的派生類 most derived class 的析構函式最先被呼叫,然後呼叫每乙個基類的析構函式。因為在c 中,當乙個派生類物件通過使用乙個基類指標刪除,而這個基類有乙個非虛的析構函式,則結果是未定義的。執行時比較有代表性的後果是物件的派生部分不會被銷毀。然...