大家都說當至少有一個類方法是虛擬的時候析構函數應該是虛擬的。
我的問題是,使用上傳時,析構函數應該是虛擬的,是不是正確的?使用上傳時的虛擬析構函數
class A {
public:
~A(){
cout << "Destructor in A" << endl;
}
};
class B: public A
{
public:
~B(){
cout << "Destructor in B" << endl;
}
};
int main()
{
A* a = new B;
cout << "Exiting main" << endl;
delete a;
}
我沒有這段代碼中的虛函數,但是如果我不讓我的基礎析構函數變成虛擬的,它將不會調用B析構函數。是的,如果我沒有虛擬功能,我知道使用ucpasting是毫無意義的。
謝謝。
你不是倒戈。 – 2011-05-13 12:47:06
@尼爾:「A * a =新B」不是向上播放嗎? – 2011-05-13 12:56:58
@Oli我在那裏看不到演員,是嗎? – 2011-05-13 12:57:40