1
比方說,我有一個抽象類動物
class Animal {
public:
Animal(const std::string &name) : _name(name)
{
}
virtual void Print() const = 0;
virtual ~Animal() {}
protected:
std::string _name;
};
,我有狗和貓繼承這個班。 在我正在閱讀的書中,建議在基類中定義一個虛擬析構函數。 我試圖創建沒有虛擬des定義的對象,程序運行良好,沒有泄漏(使用valgrind進行檢查)。 所以我的問題是爲什麼使用虛擬析構函數(空實現)?它有什麼好處?
謝謝!
[何時使用虛擬析構函數?](http://stackoverflow.com/questions/461203/when-to-use-virtual-destructors) – 2010-09-19 18:03:09