Robin Chow's C++ Blog

 

[导入]More Exceptional C++ 之 15

纯虚函数是具体派生类必须重载的虚函数。如果一个类有一个没有重载的纯虚函数,那么它是一个抽象类,不能创建该类型的对象。

定义纯虚函数体的原因有以下死点:
  1. 纯虚析构函数。通常情况下,析构函数要么是虚函数并且为公有,要么是非虚函数并且为 protected。如果没有提供函数定义,则不能实例化该基类的派生类。
  2. 强迫程序员认识到正在使用缺省行为。对于普通虚函数,如果派生类没有重载则默认使用基类的缺省行为。如果不想隐含地使用基类的行为,可以使基类的虚函数为纯虚函数,则派生类必须显式地使用基类的行为。
  3. 提供部分行为。
  4. 帮助编译器诊断错误。如果不小心调用了一个纯虚函数(通常是对构造函数或析构函数间接调用),编译器可能查不到问题所在,这是可以在纯虚构函数里面写一些使程序崩溃的代码,从而方便进行查错。

文章来源:http://my.donews.com/robinchow/2007/02/05/rhawrggrcrbpbeslbvcspydjubkcgkwxswuj/

posted on 2007-10-23 20:47 Robin Chow 阅读(114) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

统计

常用链接

留言簿(1)

随笔分类

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜