空虚函数(空虚函数的函数体是)
空虚函数
本文内容来自于互联网,分享空虚函数(空虚函数的函数体是)
空虚函数 | Top |
空虚函数是一个完整的函数,它有函数体,只是函数体内没有任何语句罢了。一个类中,如果含有空虚函数,但是没有纯虚函数的情况下,是可以实例化对象的。
空虚函数与纯虚函数的区别:
纯虚函数只有声名,没有实现。含有纯虚函数的类不可以实例化对象。
在程序开发过程中有时需要在类的某个子孙中定义虚函数,但并不是必须保持派生层次中虚函数链条上的每个虚函数都需要具体实现,如果某层虚函数无需重新实现但又必须提供该虚函数的说明,则只需要在相应层定义空的虚函数即可,这样就可以维系类派生层次中虚函数路径的存在。
举例:
例子一
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(){}//空虚函数,是一个完整的函数,有函数体定义{}
};//这样的类可以实例化对象。