虚析构函数的作用是避免内存泄漏,而且是当子类中有指针成员变量时会用到。虚析构函数在释放指向子类对象的基类指针是可以调用子类的析构函数达到释放子类对象堆中内存的目的。由于基类的析构函数为虚函数,所以子类会形成虚表,其中存有基类虚函数,当释放基类指针时,由于子类析构函数与子类析构函数构成多态,所以先调用子类析构函数在调用基类构造函数。
参考:
1、http://blog.youkuaiyun.com/derkampf/article/details/62046205
2、http://blog.youkuaiyun.com/orchidofocean/article/details/78176470