A 的构造函数 , 然后调用 B 的构造函数 , 最后调用 C 的构造函数 ;
参考 【C++】继承 ⑧ ( 继承 + 组合 模式的类对象 构造函数 和 析构函数 调用规则 ) 博客中 , 构造函数..., 则编译器会自动生成一个 析构函数 , 该 析构函数 会首先调用 父类 的 析构函数 , 然后执行 子类 的 析构函数 ;
使用 虚析构函数 的目的是 确保在释放 子类 对象时正确地释放资源和调用析构函数...;
当使用 父类 指针指向一个 子类 对象时 , 如果要通过 delete 释放该指针指向的对象 ,
如果是正常的析构函数 , 没有 使用 virtual 定义虚析构函数 , 则只会调用 父类 的 析构函数..., 子类的析构函数不会被调用到 ;
虚析构函数 可以确保 首先调用 子类 的 析构函数 , 然后调用 父类 的析构函数 ;
这样可以 避免在 释放 子类对象 时出现 资源泄漏 的情况 ;
需要注意的是...虚析构函数
1、代码示例 - 没有使用虚析构函数导致子类析构函数无法调用
在下面的代码中 ,
声明 子类指针 指向 子类对象 , 释放 子类指针 时 先调用 子类析构函数 , 再调用父类析构函数 ;
声明