- 虚析构和纯虚析构
- 虚析构语法:
- virtual ~Animal(){}
- 如果子类中有指向堆区的属性,那么要利用虚析构技术 在delete的时候 调用子类的析构函数
- 纯虚析构语法:
- virtual ~Animal() = 0;
- Animal::~Animal(){ … }
- //纯虚析构 需要有声明 也需要有实现
//如果一个类中 有了 纯虚析构函数,那么这个类也属于抽象类,无法实例化对象了
- 向上类型转换和向下类型转换
- 父转子 向下类型转换 不安全
- 子转父 向上类型转换 安全
- 如果发生多态,那么转换永远都是安全的