实验3继承与派生

实验3继承与派生

ID:41628602

大小:95.02 KB

页数:8页

时间:2019-08-29

实验3继承与派生_第1页
实验3继承与派生_第2页
实验3继承与派生_第3页
实验3继承与派生_第4页
实验3继承与派生_第5页
资源描述:

《实验3继承与派生》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、重庆交通大学信息科学与工程学院上机实验报告班级:计科4班姓名学号:伍明力631507020408实验项目名称:实验三、继承与派生实验项目性质:验证性与设计性实验所属课程:《面向对象程序设计》实验室(中心):B01407指导教"帀:王桂平实验完成时间:2016年5月1日教师评阅意见:签名:年刀日实验成绩:一、实验(实训)概述:【实验目的】1.学习定义和使用类的继承关系,定义派生类;2.熟悉不同继承方式下对基类成员的访问控制;3.掌握类的完整设计与测试。【实验要求】1-根据实验项目要求编写程序或回答问题;2.所提交的程序都必须经过测试,验证是正确的;3.认真记录实验过

2、程及结果,回答实验报告中的问题。【基本原理】详见教材及课件。【实施环境】(使用的材料、设备、软件)VisualC++6.0二、实验(实训)内容:实验任务一用调试工具跟踪程序流程,回答问题第1题【考查知识点】基类与派生类的转换【项目内容】已经有如下正确的程序了,请为该程序建立控制台工程,然后按照要求进行测试和调试。#includeclassB〃基类{protected:intx,y;public:B(inta=10,intb=20):x(a),y(b){}voidcalc()//基类有calc(){cout«Mx+y=M«x+y«endl;}

3、};classD:publicB〃公有派生类{protected:intz;public:D(inta=1,intb=2,intc=3):B(a,b),z(c){}voidcalc()〃派生类也有calc(){cout«nz+x+y="«z+x+y«endl;}};voidfn(B&t)//形参为基类的引用{t.calc();〃只调用基类的calc(),不会调用派生类的calc()}intmain(){BBo,*pb;DDo;cout«ncallBo.calc():H;Bo.calc();cout«'vcallDo.calc():M;Do.calc();cout«

4、"callBo.calc():M;fn(Bo);cout«McallDo.calc():";fn(Do);pb=&Bo;〃基类对象的指针指向基类对象pb->calc();pb=&Do;〃基类对象的指针指向派生类对象pb->calc();return0;【方案设计】无【实验(实训)过程】(步骤、记录、数据、程序等)请按照如下步骤对程序进行调试,并回答相关问题。(1)在主函数的第一条cout语句处设置一个断点,进行调试。如下图所示。进入到调试状态后,在watch窗口中观察下列表达式的值。&Bo:0x0012ff78&Do:0x0012ff68sizeof(Bo):8s

5、izeof(Do):12(2)点开&Bo和&Do的树状结构,观察其成员。Do对象是否包含了从基类中继承过来的数据成员?答:是⑶继续单步运行,当运行到语句fn(Bo);时,点击stepinto进入到fn函数进行调试,在fn函数中运行时,在watch窗口中记录引用形参的地址。&t:1)请问在定义函数对形参t声明时的“&”符号跟在watch窗口中上述表达式中的“&”符号意义是否相同?答:不同2)引用形参的地址跟上面记录的地址&Bo、&Do中的哪一个是一样的。(结合引用的含义进行理解)答:⑷继续单步运行,当运行到语句fn(Do);时,点击stepinto进入到fn函数进行

6、调试,在伯函数中运行时,在watch窗口中记录引用形参的地址。&t:1)引用形参的地址跟上面记录的地址&Bo、&Do中的哪一个是一样的。(结合引用的含义进行理解)答:&Do2)通过调试过程中的输出判断函数调用fn(Do)在执行过程中调用的是基类的calc()函数还是派生类的calc()函数?答:基类的calc()函数⑸继续单步运行,观察两条pb・>calc();语句的输出,其中第2条pb・>calc();语句调用的是基类的calc()函数还是派生类的calc()ffi数?答:派生类的calc()函数⑹如果希望fn(Do);和第2条pb・>calc();语句调用的是

7、派生类的calc()函数,应该怎样修改程序?(只需要描述即可,不需真正修改)【注意】这是后面多态性中的内容。答:【结论】(结果、分析)请记录该程序的运行过程:输入输出。比如:123456/(/表示输入,如果没有输入,则没有这一行)a+b=579(输出)并尽可能对程序的执行结果进行分析。口答:实验任务二分析给出的程序,回答相关问题第1顾【考査知识点】多级派生时的访问属性【项目内容】阅读下面的程序,回答问题。classA{public:voidf1();inti;protected:voidf2();intj;private:intk;};classB:publicA

8、{publ

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。