为什么父类的析构函数必须是虚函数,而C++默认的析构函数不是虚函数? 因为当我们用基类指针指向new出来的子类时,根据 动态绑定可以确保子类新添加的部分也可以被顺利释放掉,以防出现内存泄漏。 而默认的析构函数不是虚函数的原因是因为:虚函数需要额外的 虚函数表和 虚表指针,会占用格外内存,对于不会有子类的类来说,这个是没有必要的。 虚函数和虚表指针:https://blog.twofei.com/496/