因为当定义基类的指针指向子类对象时,在调用析构函数的时候,如果析构函数是虚函数,那么就会调到子类的析构函数,所以如果子类申请了新的内存的话,那这块的内存就能被释放;但是如果不是虚函数的话,就只会调用基类的析构函数,这样子类额外申请的内存就不能被释放,就会导致内存泄漏问题;
为什么基类的析构函数必须是虚函数
最新推荐文章于 2023-06-10 10:45:21 发布
因为当定义基类的指针指向子类对象时,在调用析构函数的时候,如果析构函数是虚函数,那么就会调到子类的析构函数,所以如果子类申请了新的内存的话,那这块的内存就能被释放;但是如果不是虚函数的话,就只会调用基类的析构函数,这样子类额外申请的内存就不能被释放,就会导致内存泄漏问题;