一般来说,有使用visual的类,其析构函数都需要加上visual,这是为什么呢?
因为使用多态时,一般都是由基类指针来使用派生类的,在删除这个派生类对象时也一样,由基类指针来调用,
可以想象,如果析构函数不是虚函数,那么使用基类指针来删除对象,就相当于告诉编译器,我要析构基类(在没使用visual时,是静态绑定),
这样,就会导致派生类对象得不到释放。
时间: 2024-10-24 23:14:56
一般来说,有使用visual的类,其析构函数都需要加上visual,这是为什么呢?
因为使用多态时,一般都是由基类指针来使用派生类的,在删除这个派生类对象时也一样,由基类指针来调用,
可以想象,如果析构函数不是虚函数,那么使用基类指针来删除对象,就相当于告诉编译器,我要析构基类(在没使用visual时,是静态绑定),
这样,就会导致派生类对象得不到释放。