子类 中覆盖 父类 的 析构函数 ;
场景说明 : A 类 是基类 , B 类 继承 A 类 ;
声明一个 A 类型 的指针变量 , 为其赋值 B 类型对象的地址 , 当需要释放该指针变量时 , 使用...类型的 析构函数 ;
释放 A 类型的指针 , 需要调用其子类 B 类型对象的 析构函数 , 此时需要将 A 类型 和 B 类型的 析构函数 声明为 虚析构函数 ;
3、虚析构函数语法
虚析构函数 的...;
当使用 父类 指针指向一个 子类 对象时 , 如果要通过 delete 释放该指针指向的对象 ,
如果是正常的析构函数 , 没有 使用 virtual 定义虚析构函数 , 则只会调用 父类 的 析构函数..., 子类的析构函数不会被调用到 ;
虚析构函数 可以确保 首先调用 子类 的 析构函数 , 然后调用 父类 的析构函数 ;
这样可以 避免在 释放 子类对象 时出现 资源泄漏 的情况 ;
需要注意的是...虚析构函数
1、代码示例 - 没有使用虚析构函数导致子类析构函数无法调用
在下面的代码中 ,
声明 子类指针 指向 子类对象 , 释放 子类指针 时 先调用 子类析构函数 , 再调用父类析构函数 ;
声明