首页 电脑学院 黑客教程 网站技术 网页特效 免费论文 公文写作 演讲发言 实用文档 职场指南 时尚生活 情感男女 其他资讯

您的位置:首页-> 免费论文-> 计算机论文-> 定义纯虚析构函数(pure virtual destructor)
定义纯虚析构函数(pure virtual destructor)
  纯虚成员函数通常没有定义;它们是在抽象类中声明,然后在派生类中实现。比如说下面的例子:



class File //an abstract class
{
public:
virtual int open(const string & path, int mode=0x666)=0;
virtual int close()=0;
//...
};

但是,在某些情况下,我们却需要定义一个纯虚成员函数,而不仅仅是声明它。最常见的例子是纯虚析构函数。在声明纯虚析构函数时,不要忘了同时还要定义它。

class File //abstract class
{
public:
virtual ~File()=0; //declaration of a pure virtual dtor
};
File::~File() {} //definition of dtor

为什么说定义纯虚析构函数是非常重要的
派生类的析构函数会自动调用其基类的析构函数。这个过程是递归的,最终,抽象类的纯虚析构函数也会被调用。

如果纯虚析构函数只被声明而没有定义,那么就会造成运行时(runtime)崩溃。(在很多情况下,这个错误会出现在编译期,但谁也不担保一定会是这样。)纯虚析构函数的哑元实现(dummy implementation,即空实现)能够保证这样的代码的安全性。

class DiskFile : public File
{
public:
int open(const string & pathname, int mode);
int close();
~DiskFile();
};

File * pf = new DiskFile;
//. . .
delete pf; //OK, ultimately invokes File::~File()

在某些情况下定义其它纯虚成员函数可能也是非常有用的(比如说在调试应用程序以及记录应用程序的日志时)。例如,在一个不应该被调用,但是由于一个缺陷而被调用的基类中,如果有一个纯虚成员函数,那么我们可以为它提供一个定义。

class Abstract
{
public:
virtual int func()=0;
//..
};
int Abstract::func()
{
std::cerr<<"got called from thread " << thread_id<<
             "at: "<<gettimeofday()<<std::endl;
}

这样,我们就可以记录所有对纯虚函数的调用,并且还可以定位错误代码;不为纯虚函数提供定义将会导致整个程序无条件地终止。


--------------------------------------------------------------------------------
本文作者:Danny Kalev 是一位系统分析员、软件工程师,他具有14年在 C++ 和面向对象设计方面的经验。

在百度中查找更多定义纯虚析构函数(pure virtual destructor)的内容
职场宝典   职场故事   职场跳槽   职场文化   职场理财   职场充电   情感天地   职场女性   职场礼仪   职场新人
报告总结   述职报告 工作总结 调查报告 工作汇报 计划方案 个人总结 社会实践 规章制度 调研报告 
  实习报告 考察报告 辞职报告 
演讲发言   竞职演说   就职演说   精彩演说   爱国演讲   英语演讲   十七大演讲   安全生产演讲稿   
节日祝福   重阳节 国庆节 教师节 中秋节 情人节 七夕节 劳动节 妇女节 清明节 愚人节 春节 元旦 圣诞节  儿童节  端午节 母亲节 新婚祝福 生日祝福 
讲话致辞   开业开幕   会议主持   庆典致辞   会议发言   党风廉政   党政报告   贺电慰问   婚丧嫁娶   思想宣传
法律常识   基本常识   法律文书   权益常识   劳动保障   婚姻继承   民事诉讼   刑事诉讼   
党建材料   入党申请   思想学习   党性分析   思想汇报   转正申请   民主生活   党委党建   入团申请   申报材料
求职简历   个人简历   求职自荐   求职谋略   面试技巧   求职英语   自我鉴定   英文简历   简历封面
心得体会   心得体会   经验交流   读后感   
时政热点   和谐社会   先进性教育   新农村建设   十七大   八荣八耻   科学发展观   劳动合同法   
人际沟通   社交技巧   社交礼仪   口才技巧   谈话技巧   演讲技巧   
营销技巧   电话销售   网络销售   推销技巧   促销技巧   销售口才   营销手段   销售技巧   谈判技巧   

“ 定义纯虚析构函数(pure virtual destructor)”来源于网络,版权归作者所有!勿用于商业用途。

计算机论文

计算机论文
哲学论文
医学论文
法律论文
教育论文
学习论文
毕业论文
工作论文
管理论文
文人论文
财务论文

本类阅读TOP10

·计算机基础知识试题
·物资管理信息系统开发
·Visual C++与Delphi/C++Builder之比较及未来的发展前景之我见
·计算机网络基础知识
·Frontpage网页制作
·仓库安全管理综合信息系统
·计算机毕业论文-实时性远程答疑系统
·基于信息技术的研究性学习
·思科构筑3G通信网络 拓展3G网络应用
·VB编程中网格控件的选用及使用方法

广告


关于本站|服务条款|广告服务|客服中心|发布文章|网站留言