一、虚析构函数
1、构造函数不能是虚函数
构造函数 不能定义为 虚函数 , 不能使用 virtual 关键字修饰 ;
如果要创建一个 子类的 实例对象 , 需要 从 该子类的 最上层的 父类开始 , 沿着继承路径.../ 析构函数 调用策略 , 在 继承 + 组合 的情况下 , 构造函数 与 析构函数 调用规则如下 :
构造函数 : 父类 -> 成员 -> 自身 ;
首先 , 调用 父类 构造函数 ;
然后 , 调用..., 只有在 父类 的析构函数是 虚函数 时 , 子类 的析构函数才必须是虚函数 ;
如果 父类 的 析构函数 不是 虚函数 , 则 子类 的 析构函数 可以是 普通的 非虚函数 ;
二、代码示例 -...虚析构函数
1、代码示例 - 没有使用虚析构函数导致子类析构函数无法调用
在下面的代码中 ,
声明 子类指针 指向 子类对象 , 释放 子类指针 时 先调用 子类析构函数 , 再调用父类析构函数 ;
声明...在下面的代码中 , 将 父类 和 子类 的析构函数 , 都使用 virtual 关键字修饰 ;
声明 子类指针 指向 子类对象 , 释放 子类指针 时 先调用 子类析构函数 , 再调用父类析构函数 ;