- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验3 继承与派生要点
重庆交通大学信息科学与工程学院
上机实验报告
班 级: 计科4班
姓名 学号: 伍明力 631507020408
实验项目名称: 实验三、继承与派生
实验项目性质: 验证性与设计性
实验所属课程: 《面向对象程序设计》
实验室(中心): B01407
指 导 教 师 : 王桂平
实验完成时间: 2016 年 5 月 1 日
一、实验(实训)概述:
【实验目的】
1. 学习定义和使用类的继承关系,定义派生类;
2. 熟悉不同继承方式下对基类成员的访问控制;
3. 掌握类的完整设计与测试。
【实验要求】
1. 根据实验项目要求编写程序或回答问题;
2. 所提交的程序都必须经过测试,验证是正确的;
3. 认真记录实验过程及结果,回答实验报告中的问题。
【基本原理】
详见教材
【实施环境】(使用的材料、设备、软件)
Visual C++ 6.0
二、实验(实训)内容:
实验任务一 用跟踪程序流程,回答问题
第1题
【考查知识点】
基类与派生类的转换
【项目内容】
已经有如下正确的程序了,请为该程序建立控制台工程,然后按照要求进行测试和调试。
#include iostream.h
class B //基类
{
protected:
int x, y;
public:
B(int a=10,int b=20):x(a),y(b){ }
void calc() //基类有calc()
{
cout x+y= x+y endl;
}
};
class D: public B //公有派生类
{
protected:
int z;
public:
D(int a=1,int b=2,int c=3):B(a,b),z(c){}
void calc( ) //派生类也有calc()
{ cout z+x+y= z+x+y endl; }
};
void fn(B t) //形参为基类的引用
{
t.calc(); //只调用基类的calc(),不会调用派生类的calc()
}
int main()
{
B Bo, *pb;
D Do;
coutcall Bo.calc():;
Bo.calc();
coutcall Do.calc():;
Do.calc();
coutcall Bo.calc():;
fn(Bo);
coutcall Do.calc():;
fn(Do);
pb=Bo; //基类对象的指针指向基类对象
pb-calc();
pb=Do; //基类对象的指针指向派生类对象
pb-calc();
return 0;
}
【方案设计】
无
【实验(实训)过程】(步骤、记录、数据、程序等)
请按照如下步骤对程序进行调试,并回答相关问题。
(1) 在主函数的第一条cout语句处设置一个断点,进行调试。如下图所示。进入到调试状态后,在watch窗口中观察下列表达式的值。
BoDo:sizeof(Bo):sizeof(Do):
(2) 点开Bo和Do的树状结构,观察其成员。Do对象是否包含了从基类中继承过来的数据成员?
答
(3) 继续单步运行,当运行到语句fn(Bo);时,点击step into进入到fn函数进行调试,在fn函数中运行时,在watch窗口中记录引用形参的地址。
t:
1) 请问在定义函数对形参t声明时的“”符号跟在watch窗口中上述表达式中的“”符号意义是否相同?
答:
2) 引用形参的地址跟上面记录的地址Bo、Do中的哪一个是一样的。(结合引用的含义进行理解)
答:
(4) 继续单步运行,当运行到语句fn(Do);时,点击step into进入到fn函数进行调试,在fn函数中运行时,在watch窗口中记录引用形参的地址。
t:
1) 引用形参的地址跟上面记录的地址Bo、Do中的哪一个是一样的。(结合引用的含义进行理解)
答:
2) 通过调试过程中的输出判断函数fn(Do)在执行过程中调用的是基类的calc()函数还是派生类的calc()函数?
答:
(5) 继续单步运行,观察两条pb-calc();语句的输出,其中第2条pb-calc();语句调用的是基类的calc()函数还是派生类的calc()函数?
答:
(6) 如果希望fn(Do);和第2条pb-calc();语
您可能关注的文档
- 实用类文本阅读之传记阅读要点.ppt
- 实用语文第二册教案第一课 一二三要点.doc
- 实用沟通技能要点.ppt
- 实腹式轴心受压构件要点.ppt
- 实训1汽车维护实训要点.doc
- 实训3-1:PGP实现文件加密和数字签名要点.ppt
- 实训七:生产过程业务核算要点.ppt
- 实训总结报告要点.doc
- 实际问题与方程 例1要点.ppt
- 实际问题与一元一次方程4要点.ppt
- GB/T 45128-2025塑料 含水量的测定.pdf
- 《GB/T 45128-2025塑料 含水量的测定》.pdf
- 《GB/T 45183-2025塑料 气候老化试验中辐照量的仪器测定 总则和基本测试方法》.pdf
- 中国国家标准 GB/T 45183-2025塑料 气候老化试验中辐照量的仪器测定 总则和基本测试方法.pdf
- GB/T 45183-2025塑料 气候老化试验中辐照量的仪器测定 总则和基本测试方法.pdf
- GB/T 29456-2025能源管理体系 实施、保持和改进GB/T 23331能源管理体系指南.pdf
- 中国国家标准 GB/T 29456-2025能源管理体系 实施、保持和改进GB/T 23331能源管理体系指南.pdf
- GB/T 18216.12-2025交流1 000 V和直流1 500 V及以下低压配电系统电气安全 防护措施的试验、测量或监控设备 第12部分:电量测量和监视装置(PMD).pdf
- 《GB/T 18216.12-2025交流1 000 V和直流1 500 V及以下低压配电系统电气安全 防护措施的试验、测量或监控设备 第12部分:电量测量和监视装置(PMD)》.pdf
- 中国国家标准 GB/T 18216.12-2025交流1 000 V和直流1 500 V及以下低压配电系统电气安全 防护措施的试验、测量或监控设备 第12部分:电量测量和监视装置(PMD).pdf
文档评论(0)