在c++教科书中,学习虚析构函数的时候经常会涉及到基类继承等,许多代码也经常把基类的析构函数设置成虚函数,但是有的时候也不一定为虚。那么何时析构函数要设置成虚呢?
简单总结下要用多态的时候就得用虚析构函数。
class shape
{
public:
shape();
~shape();
}
class renctangle:public shape
{
public:
rectangle();
~rectangle();
}
假如我们在应用当中,只会用到继承类,也就是renctangle *a = new recrangle;
之后只用这个a就可以完成功能,那么基类就不用虚析构函数了。
但是,我们有的时候,经常把renctangle指针强制转换成基类,然后用基类的函数操作。最后delete 基类指针,那么这个时候,就必须用虚析构函数。