空虚函数

王朝百科·作者佚名  2010-07-13  
宽屏版  字体: |||超大  

定义空虚函数是一个完整的函数,它有函数体,只是函数体内没有任何语句罢了。一个类中,如果含有空虚函数,但是没有纯虚函数的情况下,是可以实例化对象的。

空虚函数与纯虚函数的区别:

纯虚函数只有声名,没有实现。含有纯虚函数的类不可以实例化对象。

在程序开发过程中有时需要在类的某个子孙中定义虚函数,但并不是必须保持派生层次中虚函数链条上的每个虚函数都需要具体实现,如果某层虚函数无需重新实现但又必须提供该虚函数的说明,则只需要在相应层定义空的虚函数即可,这样就可以维系类派生层次中虚函数路径的存在。

举例:

例子一

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(){}//空虚函数,是一个完整的函数,有函数体定义{}

};//这样的类可以实例化对象。

 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝百科 版权所有