#include class a
~a()
};class b : public a
~b()
};int main()
執行結果:ab
~a基類析構函式加上virtual再試試
#include class a
virtual ~a()
};class b : public a
~b()
};int main()
執行結果:ab
~b~a
如果基類的析構函式不是虛函式,那麼delete基類指標不能釋放子類物件,不會呼叫子類物件的析構函式,這種做法是不完善的。
如果基類的析構函式是虛函式,那麼delete基類指標是可以呼叫子類物件的析構函式的。
子類能不能繼承父類的成員變數
1 關於私有成員變數 無論父類中的成員變數是私有的 共有的 還是其它型別的,子類都會擁有父類中的這些成員變數。但是父類中的私有成員變數,無法在子類中直接訪問,必須通過從父類中繼承得到的protected public方法 如getter setter方法 來訪問。2 關於靜態成員變數 無論父類中的成...
java中子類能不能繼承父類構造方法
結果有些和想象中的不一樣吧。原因如下 其實每個子類構造方法的第一條語句,都是隱含地呼叫super 如果父類沒有這種形式的建構函式,那麼在編譯的時候就會報錯。所以父類中的構造方法是不能繼承的,但是在例項化子類的時候會呼叫父類的構造方法,這樣就能解釋下面這種情況了。面試題目1 指出下面程式的執行結果 p...
在類的成員函式中能不能呼叫delete this?
如圖 解析 1.在類的成員函式中能不能呼叫delete this?答案是肯定的,能呼叫,而且很多老一點的庫都有這種 假設這個成員函式名字叫release,而delete this就在這個release方法中被呼叫,那麼這個物件在呼叫release方法後,還能進行其他操作,如呼叫該物件的其他方法麼?答...