概念:
指没有具体实现的虚成员函数。
定义格式:
virtual void函数名(参数表) = 0;
纯虚函数的实现依赖于不同的派生类。
"=0"是指不定义函数的具体实现,没有函数体,只有声明。
"=0"的本质是将虚表中指向此虚函数的指针置为__purcall(纯虚函数标志)
概念:
含有纯虚函数的类称为抽象类。
注意:
抽象类不能实例化对象,只能作为其他类的基类
可以定义抽象类的指针或引用,指向或者引用其派生类,从而实现运行时多态。
如果继承类没有实现抽象类中的纯虚方法,则此继承类也是一个抽象类,不能实例化对象。
例如:
有三个类:图形Shape类,圆类Circle,正方形类Square,Circl和Square都继承于Shape,他们都有一个计算面积的函数get_area
我们运行一下看一下监视器:
原理: