一般是将父类的析构函数设为虚函数。多态时,父类指针指向子类对象,该对象析构时,除了会调用父类析构函数也会调用子类的析构函数。
如果不需要基类对派生类及对象进行操作,则不能定义虚函数,因为这样会增加内存开销.当类里面有定义虚函数的时候,编译器会给类添加一个虚函数表,里面来存放虚函数指针,这样就会增加类的存储空间.所以,只有当一个类被用来作为基类的时候,才把析构函数写成虚函数.
参考链接:
https://www.cnblogs.com/lixiaohui-ambition/archive/2012/07/13/2589716.html