空虚函式

空虚函式简介空虚函式是一个完整的函式,它有函式体,只是函式体内没有任何语句罢了 。一个类中,如果含有空虚函式,但是没有纯虚函式的情况下,是可以实例化对象的 。函式区别纯虚函式只有声明,没有实现 。含有纯虚函式的类不可以实例化对象 。在程式开发过程中有时需要在类的某个子孙中定义虚函式,但并不是必须保持派生层次中虚函式链条上的每个虚函式都需要具体实现,如果某层虚函式无需重新实现但又必须提供该虚函式的说明,则只需要在相应层定义空的虚函式即可,这样就可以维繫类派生层次中虚函式路径的存在 。举例:例子一class Shape{public:virtual float GetArea()=0;//纯虚函式virtual float GetPerim()=0;//纯虚函式};把其中的纯虚函式换成空虚函式也就是如下class Shape{public:virtual float GetArea{}//空虚函式virtual float GetPerim{}//空虚函式};例子二class A{virtual void fun()=0;//纯虚函式};//只要类中含有一个纯虚函式,这样的类不可以实例化对象 。class B{virtual void fun(){}//空虚函式,是一个完整的函式,有函式体定义{}};//这样的类可以实例化对象 。