虚析构函数是为了解决,派生类析构时,析构基类的一种机制 例如: class A; class B : public A: 则 A* p = new B(), 是可以编译通过的,但在调用析构时需要调用B的析构函数,所以A必须定义为虚函数才能正确析构。