


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
定义纯虚析构函数(purevirtualdestructor) virtualintopen(cotstring&path,intmode=0x666)=0;virtualintclose()=0;/.;但是,在某些情况下,我们却需要定义一个纯虚成员函数,而不仅仅是声明它。最常见的例子是纯虚析构函数。在声明纯虚析构函数时,不要忘了同时还要定义它。claFile/atractclapublic:virtualFile()=0;/declarationofapurevirtualdtor;File:File()/definitionofdtor为什么说定义纯虚析构函数是非常重要的派生类的析构函数会自动调用其基类的析构函数。这个过程是递归的,最终,抽象类的纯虚析构函数也会被调用。如果纯虚析构函数只被声明而没有定义,那么就会造成运行时(runtime)崩溃。(在很多情况下,这个错误会出现在编译期,但谁也不担保一定会是这样。)纯虚析构函数的哑元实现(dummyimplementation,即空实现)能够保证这样的代码的安全性。claDiskFile:publicFilepublic:intopen(cotstring&pathname,intmode);intclose();DiskFile();File*pf=newDiskFile;/.deletepf;/OK,ultimatelyinvokesFile:File()在某些情况下定义其它纯虚成员函数可能也是非常有用的(比如说在调试应用程序以及记录应用程序的日志时)。例如,在一个不应该被调用,但是由于一个缺陷而被调用的基类中,如果有一个纯虚成员函数,那么我们可以为它提供一个定义。claAtractpublic:virtualintfunc()=0;/.;intAtract:func()std:cerrgotcalledfromthreadat:这样,我们就可以记录所有对纯虚函数的调用,并且还可以定位错误代码;不为纯虚函数提供定义将会导致整个程序无条件地终止。-本文作者:DayKalev是一位系统分析员、软件工程师,他具有14年在C和面向对象设计方面的经验。 virtualintopen(cotstring&path,intmode=0x666)=0;virtualintclose()=0;/.;但是,在某些情况下,我们却需要定义一个纯虚成员函数,而不仅仅是声明它。最常见的例子是纯虚析构函数。在声明纯虚析构函数时,不要忘了同时还要定义它。claFile/atractclapublic:virtualFile()=0;/declarationofapurevirtualdtor;File:File()/definitionofdtor为什么说定义纯虚析构函数是非常重要的派生类的析构函数会自动调用其基类的析构函数。这个过程是递归的,最终,抽象类的纯虚析构函数也会被调用。如果纯虚析构函数只被声明而没有定义,那么就会造成运行时(runtime)崩溃。(在很多情况下,这个错误会出现在编译期,但谁也不担保一定会是这样。)纯虚析构函数的哑元实现(dummyimplementation,即空实现)能够保证这样的代码的安全性。claDiskFile:publicFilepublic:intopen(cotstring&pathname,intmode);intclose();DiskFile();File*pf=newDiskFile;/.deletepf;/OK,ultimatelyinvokesFile:File()在某些情况下定义其它纯虚成员函数可能也是非常有用的(比如说在调试应用程序以及记录应用程序的日志时)。例如,在一个不应该被调用,但是由于一个缺陷而被调用的基类中,如果有一个纯虚成员函数,那么我们可以为它提供一个定义。claAtractpublic:virtualintfunc()=0;/.;intAtract:func()std:cerrgotcalledfromthreadat:这样,我们就可以记录所有对纯虚函数的调用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 七年级英语单词表英译汉
- 河北省怀安县2025年上半年公开招聘村务工作者试题含答案分析
- 河北省馆陶县2025年上半年公开招聘城市协管员试题含答案分析
- 2025年北京二手房买卖合同样本:房屋权属核实
- 2025版货物运输保险合同范本汇编
- 2025版大型购物中心设施维护保养服务合同范本
- 2025版医疗设备维修保养及备件供应合同范本
- 2025版环保产业投资入股合同样本
- 2025版知识产权风险评估与防控联盟协议
- 2025年新能源发电项目电线电缆供应合同范本
- 教育学第五章教师与学生
- 公路施工环境污染应急预案
- GB/T 31227-2014原子力显微镜测量溅射薄膜表面粗糙度的方法
- 三年级下册口算天天100题(A4打印版)
- 上海交通大学学生生存手册
- 幼儿园绘本故事:《苏丹的犀角》 课件
- 03第三阶段04印章模型制作
- 英汉互译课件05
- GB∕T 17766-2020 固体矿产资源储量分类
- Q∕SY 06515.1-2016 炼油化工工程电气技术规范 第1部分:通则
- 2010现代领翔nfcg2.0dohc原厂维修手册车身和外部
评论
0/150
提交评论