析构函数⼀般写成虚函数的原因
作者:互联网
直观的讲:是为了降低内存泄漏的可能性。举例来说就是,⼀个基类的指针指向⼀个派⽣类的对象,在使⽤完毕准备销毁时,如果基类的析构函数没有定义成虚函数,那么编译器根据指针类型就会认为当前对象的类型是基类,调
⽤基类的析构函数 (该对象的析构函数的函数地址早就被绑定为基类的析构函数),仅执⾏基类的析构,派⽣类的
⾃身内容将⽆法被析构,造成内存泄漏。
如果基类的析构函数定义成虚函数,那么编译器就可以根据实际对象,执⾏派⽣类的析构函数,再执⾏基类的析构 函数,成功释放内存。
标签:函数,成虚,编译器,内存,析构,基类,写成 来源: https://www.cnblogs.com/xiaohai123/p/16462110.html