作者yshihyu (yshihyu)
看板C_and_CPP
標題[問題] 虛擬解構子
時間Sun Sep 2 06:40:06 2012
繼承中指標使用到 upcasting 動態配置記憶體 , 需要在基底類別的解構子加上 virtual
如果我在繼承中沒有使用 upcasting 動態配置記憶體,
這樣我在解構子加上 virtual 可以嗎?
因為我不確定如果可以這樣感覺會比較安全
class A {
virual ~A(){}
};
class B : public A {
~B(){} // 要不要加上 virtual ???
};
class C: public B {
~C(){}
}
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.204.0.32
※ 編輯: yshihyu 來自: 123.204.0.32 (09/02 06:42)
推 littleshan:只要你的class會被繼承就應該使用virtual destructor 09/02 08:45
→ yshihyu:所以有無使用到upcasting指標指向new出的衍生類別,直接在 09/02 12:42
→ yshihyu:在基底類別解構子加上 virtual 是沒有問題嗎? 09/02 12:42
※ 編輯: yshihyu 來自: 123.204.0.32 (09/02 13:18)
→ DiAdo:virtual函數會增加class的大小,所以應該要看情況 09/02 14:38