- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验六 继承㈢ —— 多继承及继承的应用
一、实验目的
1.理解多继承的概念,熟悉多继承的定义及应用;
2.理解多继承方式下的二义性产生原因,熟悉解决二义性的方法;
3.进一步熟悉继承的综合应用。
二、实验学时
课内实验:2课时 课外练习:2课时
三 本实验涉及的新知识
㈠ 多继承的概念
如果一个派生类由二个或二个以上的基类派生得到,称为多重继承(多继承)
㈡ 多继承派生类的定义
格式:
class 派生类名:继承方式1 , 基类名1, 继承方式2, 基类名2, …
{ 派生类新定义的成员 }
㈢ 多继承派生类的构造函数
1.定义
格式:
构造函数名(总参数表):基类名1(参数表1), 基类名2(参数表2),…
{ 构造函数的函数体 }
2.说明
⑴ 多继承的构造函数的总参数表必须提供所有基类构造函数的值及新增数据成员的值。
⑵ 定义派生类对象时,多继承方式下构造函数的执行顺序为:先执行所有基类的构造函数(按排列顺序)后执行派生类的构造函数。
⑶ 释放派生类对象时,析构函数的执行顺序与构造函数的执行顺序相反。
㈣ 多继承派生类中为数据成员提供值的函数
在多继承方式下,为数据成员提供值的函数必须同时为所有基类的数据成员提供值。
㈤ 多继承的二义性
1.同名函数产生的二义性
在多重继承方式下,如果在多个基类中有同名成员函数,可能出现二义性问题。解决办法是在调用函数时使用类名及作用域运算符。
2.间接基类产生的二义性
在多重继承下,如果一个派生类由二个或以上基类派生得到,而这些基类又是由一个基类派生得到的,也会产生二义性。解决办法是使用虚基类,即在定义直接基类时,将间接基类说明为虚基类。
定义格式:
class 直接基类名 : virtual 继承方式 间接基类名
{ 派生类新定义的成员 }
四、实验内容
㈠ 验证及认知实验
按要求调试下列程序,并回答相关问题。
程序1(exp_601.cpp)
#includeiostream.h
class X
{ int x;
public :
X(int a=0){x=a;}//基类X的构造函数
void set_x(int a){x=a;}
void show(void)
{cout x=x;}
};
class Y
{ int y;
public :
Y(int b=0){y=b;}//基类Y的构造函数
void set_y(int b){y=b;}
void show(void)
{cout y=y;}
};
class Z:public X,public Y
//class Z:public X,private Y
{ int z;
public :
Z(int a=0,int b=0,int c=0): X(a),Y(b)
{z=c;} //派生类Z的构造函数
void set_xyz(int a,int b,int c)
{ set_x(a); set_y(b);z=c;}
void show_z(void)
{cout z=z;}
void print(void)
{ show(); //显示x的值
show(); //显示y的值
show_z(); //显示z的值
}
};
void main()
{ Z obj1(3,4,5),obj2;
obj2.set_xyz(10,20,30);
obj1.print();coutendl;
obj2.print();coutendl;
}
问题:
⑴ 编译该程序,会出现编译错误,其原因是在定义Z类的print ( )成员函数中的show( )函数调用时出现了 。解决的方法是:
⑵ 将“show(); //显示x的值”中的“show( )”改为
⑶ 将“show(); //显示y的值”中的“show( )”改为
⑷ 调试成功后的输出结果是:
⑸ 成员函数void set_xyz(int a,int b,int c)中“set_x(a)”的作用是 ,“set_y(b)”的作用是 。
程序2(exp_602.cpp)
#includeiostream.h
class base
{ private:
您可能关注的文档
- 第八章 客户端虚拟化技术.pdf
- 第十一章 多用户多房间Tcp聊天Python.doc
- 用户在声明类时可以不定义构造函数资料.docx
- 用友财务软件初始化以及日常流程——适用于各个版本资料.doc
- UML系统建模和分析设计课后习题答案.doc
- 试谈当前农村小学的文化缺失和重构.doc
- 引文前为什么不用冒号摘要.doc
- 夏令营活动小游戏讲述.doc
- 三菱可编程特殊继电器及特殊寄存器.doc
- 第五章 市场细分广告.doc
- 半导体材料性能提升技术突破与应用案例分析报告.docx
- 半导体设备国产化政策支持下的关键技术突破与应用前景报告.docx
- 剧本杀市场2025年区域扩张策略研究报告.docx
- 剧本杀行业2025人才培训体系构建中的市场需求与供给分析.docx
- 剧本杀行业2025年人才培训行业人才培养模式创新与探索.docx
- 剧本杀行业2025年内容创作人才需求报告.docx
- 剧本杀行业2025年区域市场区域剧本市场消费者满意度与市场竞争力研究报告.docx
- 剧本杀市场2025年区域竞争态势下的区域合作策略分析报告.docx
- 剧本杀行业2025人才培训与行业人才培养模式创新.docx
- 剧本杀行业剧本创作人才心理素质培养报告.docx
最近下载
- 珠心算家长会(金)课件.ppt VIP
- 税法(第5版)课件 曹越 第1--5章 税法基本原理、增值税--- 企业所得税.pptx
- 手外科疾病诊断与治疗.pptx VIP
- 2021乒乓球比赛活动设计方案.docx VIP
- 医疗器械分类目录2002版.doc VIP
- JBT10216-2013电缆桥架标准将代替JBT10216-2000旧标准.docx VIP
- 非遗知识文化云肩知识介绍PPT课件.pptx VIP
- 人行地通专项施工方案.doc VIP
- 阳江核电厂疏浚(清淤)项目环境影响报告书.docx VIP
- 2025广西公需科目考试答案(3套,涵盖95_试题)一区两地一园一通道建设;人工智能时代的机遇与挑战.pdf VIP
文档评论(0)