全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验十一 虚函数一、实验目的1)掌握虚函数的定义和使用2)掌握抽象类的定义和使用3)掌握纯虚函数的定义4)掌握虚析构函数、纯虚函数和抽象类的作用二、实验原理1利用虚函数的作用:当编译器编译虚函数时,编译系统将用动态连接的方式进行编译。即在编译时不确定该虚函数的版本,而是利用一种机制在运动过程中根据其所指向的实例决定使用哪一个函数版本。2利用虚析构函数的原则:当将基类指针或引用new运算符指向派生类对象时,为了在释放派生类对象时能调用派生类的析构函数,必须将基类的析构函数定义为虚函数。3抽象类的作用:为它的所有派生类提供一个公共接口,纯虚函数是定义抽象类的一种间接手段。三、实验设备实验室里调备的计算机、window xp,visual c+6.0四、实验内容41分析下面各题程序,按各题的要求进行实验1)分析下面的程序,指出程序运行的结果:#includeclass CBasepublic:virtual void f1() /将成员函数f1()声明为虚函数cout调用函数CBase:f1()!endl; virtual void f2() /将成员函数f2()声明为虚函数cout调用函数CBase:f2()!endl; void f3() /一般成员函数cout调用函数CBase:f3()!endl;class CDerived:public CBase /公有继承CBasevoid f1()cout调用函数CDerived:f1()!endl;void f2()cout调用函数CDerived:f2()!endl;void f3()cout调用函数CDerived:f3()!f1(); /通过p调用基类版本的f1()函数p-f2();/通过p调用基类版本的f2()函数p-f3();/通过p调用基类版本的f3()函数p=&obj2;/将派生类对象obj2的地址赋给pp-f1(); /动态连接,调用派生类版本p-f2();/动态连接,调用派生类版本p-f3();/调用基类版本运行的结果:2)分析下面的程序,指出程序运行的结果:#includeclass CBasepublic:CBase() /CBase类的构造函数cout调用构造函数CBase()!endl;fun(); /构造函数中调用虚函数fun()virtual void fun() /定义虚函数cout调用构造函数CBase:fun()!endl;class CDerived:public CBasepublic:CDerived() /CDerived类的构造函数cout调用构造函数CDerived()!endl;fun(); /构造函数中调用虚函数fun()void fun()cout调用构造函数CDerived:fun()!endl;void main()CDerived d; /创建对象d.fun();运行结果:3)分析下面的程序,指出程序的错误#include#includeclass CBaseprotected:char *ch;public:CBase(char *x)ch=new char20;strcpy(ch,x);virtual void fun()=0; virtual void fun1() /虚函数coutxendl;coutchendl;CBase()deletech; coutCBase()endl;class CDerived:public CBaseprotected: char *ch;public:CDerived (char *x,char*y):CBase(y)ch=new char20;strcpy(ch,x);void fun1()/coutxendl;coutchendl;Virtual CDerived() deletech; coutCDerived()fun1();p-fun();p=new CDerived(China,Hello);p-fun1();p-fun(); delete p;运行结果:42编写并调试程序1)编写一个程序计算三角,正方形和圆形的面积。分析:依题意,可以抽象出一个基类CBase,在其中说明一个虚函数,用来求面积,并利用单接口、多实现版本设计各个图形求面积的方法。(参考教材p209 5.25)源程序:运行结果:2)编写一个程序计算正方体、球体和圆柱体的表面积和体积。分析:依题意,抽象出一个公共基类CContaineer为抽象类,在其中定义求表面积和体积的虚函数(该抽象类本身没有表面积和体积可言)。抽象类中定义一个公共的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东省汕头市濠江区金山中学2026届高一上数学期末统考试题含解析
- 西南石油大学《中学语文课程标准与教材分析》2024-2025学年第一学期期末试卷
- 数据分享合作协议
- 企业会活动策划计
- 排水板抗压强度试验记录
- 土的最大干密度(击实法)试验记录
- 高一数学上学期期中模拟卷(北师大版2019高效培优提升卷)(全解全析)
- 科技文献检索与科技论文写作.完美版
- 物资管理系统开题报告
- 《科技论文写作与实践》教学大纲
- 基于电力优化的Boost型有源功率因数校正控制器芯片深度设计与应用研究
- 为进一步加强公司人力资源管理
- 2025广东华南师范大学附属小学招聘教师14人(第二批编制)笔试考试参考题库及答案解析
- 2025年锦州辅警协警招聘考试真题(含答案详解)
- 2025疾控检验试题及答案
- 学堂在线 知识产权法 章节测试答案
- 2025年广东学法考试试题及答案
- 一年级数学上册数学绘本故事《鼓鼓和蛋蛋的梦想》课件-A3演示文稿设计与制作
- 景观生态学论文 嘉陵江流域污染现状及防治措施
- 复合材料液体模塑成型技术(中文版) - 2013年最新《复合材料工艺与设备》课件——王继辉(武汉理工大学)
- 大众开发流程简介PPT课件
评论
0/150
提交评论