1.1纯虚函数表达式
virtual 返回值类型 函数名 (参数列表)=0; 父类为虚函数
当类中又了纯虚函数,这个类也被称为抽象类
抽象类特点:无法实例化对象,子类必须重写抽象类中的纯虚函数,否则也属于抽象类。无法新建对象。
1.2纯虚函数的析构函数
父类指针在析构时候,不会调用子类中的析构函数,导致子类如果又堆区属性,出现内存泄漏。利用虚析构可以解决父类指针释放子类对象时不干净的问题。
纯虚析构需要声明也需要实现;优良纯虚析构之后,这个类也属于抽象类,无法实例化对象
虚析构语法:virtual ~类名()
{
}
纯虚析构语法: virtual ~类名() = 0; //声明
类名::~类名()
{} //实现
1.3纯虚函数
虚析构或纯虚析构就是用来解决通过父类指针释放子类对象
如果子类中没有堆区数据,可以不写为虚析构或纯虚析构
拥有纯虚析构函数的类也属于抽象类。