//
// main.cpp
// c++test12
//#include using namespace std;
class a
// ~a()
virtual ~a()
void funa();
// void funb();
virtual void funb();
};void a::funa()
void a::funb()
class b: public a
~b()
void funa();
virtual void funb();
};void b::funa()
void b::funb()
int main(int argc, const char * ar**)
//class a void funb();
//a::a()
//b::b()
//a::a()
//b::b()
//a::funa()
//a::funb() // 未加虛,指向派生類物件基類指標呼叫基類的函式
//b::funa()
//b::funb()
//b::~b()
//a::~a()
//b::~b()
//a::~a()
//class a virtual void funb();
//a::a()
//b::b()
//a::a()
//b::b()
//a::funa()
//b::funb() // 加虛,指向派生類物件的基類指標呼叫派生類的函式
//b::funa()
//b::funb()
//a::~a()
//b::~b()
//a::~a()
//virtual ~a() // 加上虛函式保證析構完全,物件完全釋放
//a::a()
//b::b()
//a::a()
//b::b()
//a::funa()
//b::funb()
//b::funa()
//b::funb()
//b::~b()
//a::~a()
//b::~b()
//a::~a()
C 虛函式,純虛函式,虛析構和純虛析構
c 虛函式 定義為虛函式是為了允許用基類的指標來呼叫子類的這個函式,是需要具體實現的 virtual void funtion1 c 純虛函式 一 定義 純虛函式是在基類中宣告的虛函式,它在基類中沒有定義,但要求任何派生類都要定義自己的實現方法。在基類中實現純虛函式的方法是在函式原型後加 0 vir...
C 虛析構函式和純虛析構函式
我們知道析構函式是在物件生命週期結束時自動被呼叫,用來做一些清理工作 如釋放控制代碼,釋放堆記憶體等 防止出現記憶體洩漏。那怎麼還有虛析構函式呢?使用虛析構函式的類一般是要作為基類,被其他類繼承。通過把基類的析構函式宣告為虛函式,就可以通過父類指標來釋放子類物件,從而完成子類的一些清理工作,防止出現...
c 的虛析構函式和純虛析構函式
虛函式是用作實現子類的多型性的,它可以在執行的過程中選擇子類或者父類的同名函式,意思就是說,每次只有乙個函式執行。但是對於析構函式來說,子類 與父類在銷毀物件時,都應該要呼叫 所以把父類的析構函式定義為虛函式,會發生什麼事情呢。class class b public a int main 可以發現...