- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5章 继承和派生类
5.6 多重继承 5.6.1 声明多重继承的方法 class D : public A, private B, protected C, … { 类D新增加的成员 } 5.6.2 多重继承派生类的构造函数 派生类构造函数名(总参数表) : 基类1构造函数(参数表), 基类2构造函数(参数表), 基类3构造函数(参数表) , …{ 派生类中新增数据成员初始化语句 } 例5.8 声明一个教师类和一个学生类,用多重继承的方式声明一个研究生派生类。教师类中包括数据成员name、age、title。学生类中包括数据成员name1、sex和score。在定义派生类对象时给出初始化数据并输出。 5.6.3 多重继承引起的二义性问题 (1) 两个基类有同名成员 (2) 两个基类和派生类三者都有同名成员 (3) 如果类A和类B是从同一个基类派生的 5.6.4 虚基类 1、虚基类的作用 class 派生类名 : virtual 继承方式 基类名 2、虚基类的初始化 如果在虚基类中定义了带参数的构造函数,而且没有定义默认构造函数,则在其所有派生类中,通过构造函数的初始化表对虚基类进行初始化。 3、虚基类的简单应用举例 例5.9 在例5.8的基础上,在Teacher类和Student类之上增加一个共同的基类Person,如下图所示。作为人员的一些基本数据都放在person中,在Teacher类和Student类中再增加一些必要的数据。 * C++程序设计 主讲:王新祥 第5章 继承和派生类 5.1 继承与派生的概念 5.2 派生类的声明方式 5.3 派生类的构成 5.4 派生类成员的访问属性 5.5 派生类的构造函数和析构函数 5.6 多重继承 5.7 基类与派生类的转换 5.8 继承与组合 5.9 继承在软件开发中的重要意义 继承性是面向对象程序设计中最重要的机制。这种机制提供了无限重复利用程序资源的一种途径。通过C++语言中的继承机制,可以扩充和完善旧的程序以适应新的需求。这样不仅可以节省程序开发的时间和资源,并且为将来的程序增添了新的资源。 5.1 继承与派生的概念 一个派生类只从一个基类派生的称为单继承。一个派生类从多个基类派生的则称为多继承。 派生类是基类的具体化,而基类则是派生类的抽象。 请看下面的图示。 5.2 派生类的声明方式 class 派生类名 : [继承方式] 基类名 { 派生类新增加的成员 }; class Student { int num; char name[30]; char sex; public: void display( ) //对成员函数display的定义 { coutnum: num endl; coutname: nameendl; coutsex: sexendl; } }; class Studend1 { int num; //此行原来己有 char name[20]; //此行原来己有 char sex; //此行原来己有 int age; char addr[20]; public: void display( ) //此行原来己有 { coutnum: numendl; //此行原来己有 coutname: nameendl; //此行原来己有 coutsex: sexendl; //此行原来己有 coutage: ageendl; coutaddress: addrendl; } }; 利用原来定义的类Student作为基础,再加上新的内容即可,以减少重复的工作量。 C++提供的继承机制就是为了解决这个问题的。 在C++中,所谓“继承”就是在一个已存在的类的基础上建立一个新的类。已存在的类称为“基类(base class)”或“父类(father class)”。新建立的类称为“派生类(derived class)”或“子类(son class)”。 class Student1 : public Student //声明基类是Student { int age; //新增加的数据成员
您可能关注的文档
最近下载
- 2025党校入党积极分子发展对象考试题库(附答案).docx VIP
- 2025至2030年中国铜件阀门行业发展研究报告.docx
- 机械制造技术基础课程设计说明书.doc VIP
- TB 10751-2018 高速铁路路基工程施工质量验收标准 含2024年修改单(3-1).pdf
- 小学植物种植观察记录表.docx VIP
- 2025全球灯塔网络:改变观念提升数字化转型的影响力和规模白皮书.pdf
- 在TransCAD中如何编译和使用定制的VDF动态链接库.doc VIP
- 汽车式起重机吊装安全专项施工方案.pdf VIP
- 5eDnD_凡戴尔的失落矿坑_模组_中译(二校).pdf VIP
- 高考诗歌的比较鉴赏公开课省名师优质课赛课获奖课件市赛课一等奖课件.pptx VIP
文档评论(0)