- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
派生类的构造函数 派生类的数据成员有所有基类的数据成员和派生类新增的数据成员共同组成,如果派生类新增成员中还有对象成员,派生类的数据成员中还间接含有这些对象的数据成员。因此,派生类对象的初始化,就要对基类数据成员、新增数据成员和对象成员的数据进行初始化。这样,派生类的构造函数需要以合适的初值作为参数,隐含调用基类的构造函数和新增对象成员的构造函数来初始化各自的数据成员,再用新加的语句对新增数据成员进行初始化。派生类构造函数声明的一般形式为: 派生类名::派生类名(参数总表):基类名(参数表),对象成员名1(参数表1),┅,对象成员名n(参数表n) { //派生类新增成员的初始化语句 } 派生类的析构函数 派生类析构函数的功能与基类析构函数的功能一样,也是在对象撤销时进行必需的清理善后工作。析构函数不能被继承,如果需要,则要在派生类中重新定义。跟基类的析构函数一样,派生类的析构函数也没有数据类型和参数。 派生类析构函数的定义的方法与基类的析构函数的定义方法完全相同,而函数体只需完成对新增成员的清理和善后就行了,基类和对象成员的清理和善后工作,编译系统会自动调用其各自的析构函数来完成。 多重继承 当一个派生类具有多个基类时,称这种派生为多重继承或多基派生。 多种继承中的主要问题是标识不唯一。比如,在派生类继承的这多个基类中有同名成员时,派生类中就会出现来自不同基类的同名成员,就出现了标识不唯一或二义性的情况,这在程序中是不允许的。 声明多重继承 多重继承就是一个派生类具有多个基类,这种情况在现实生活中也是常见。比如,海洋中的鲸鱼既有哺乳动物的特征,也有鱼的特征,如下图11-10所示。 声明多重继承 C++中,多重继承声明的一般形式为: class 派生类名:派生方式1基类名1,┅,派生方式n基类名n { 派生类成员声明; }; 其中,冒号后面的部分称为基类表,之间用逗号分开。派生方式规定了派生类以何种方式继承基类成员,仍为private、protected和public三类。在具体的程序中使用多重继承时应注意如下两个事项: 多重继承中,各种派生方式对于基类成员在派生类中的访问权限与单继承的规则相同。 在使用多继承时,对基类成员的访问应无二义性,如果有,则应使用上节介绍的方法加以解决。 友元类 当一个类作为另一个类的友元时,称这个类为友元类。当一个类成为另一个类的友元类时,这个类的所有成员函数都成为另一个类的友元函数,因此,友元类中的所有成员函数都可以通过对象名直接访问另一个类中的私有成员,从而实现了不同类之间的数据共享。 C++中,友元类的声明可以放在类声明中的任何位置,这时,友元类中的所有成员函数都成为友元函数。友元类声明的一般形式如下: firiend class 友元类名; 或 firiend 友元类名; 多重继承的构造函数和析构函数 与普通继承类似的,多重继承时,也涉及到基类成员、对象成员和派生类成员的初始化问题,因此,必要时也要定义构造函数和析构函数。一般来说,C++中声明多继承构造函数的一般形式为: 派生类名::派生类名(参数总表)::基类名1(参数表1),…,基类名n(参数表n),对象成员名1(对象成员参数表1),…,对象成员名m(对象成员参数表m) { //派生类新增成员的初始化语句 } 虚基类 多重继承中,要引用派生类的成员时,先是在派生类自身的作用域内寻找,如果找不到,再到基类中寻找,这时,如果这些基类又有一个共同的基类,派生类访问这个公共的成员时,就有可能由于同名成员的问题而发生二义性,此时就需要使用到本节要介绍的虚基类。 引入需基类的主要原因是为了解决上面提到的基类中由于同名成员的问题而产生的二义性问题 。 定义虚基类 虚基类的声明是在派生类的声明过程中进行的,其声明的一般形式为: class派生类名:virtual派生方式基类名 虚基类关键字的作用范围和派生方式与一般派生类的生命一样,只对紧跟其后的基类起作用。声明了虚基类以后,虚基类的成员在进一步派生过程中和派生类一起维护同一个内存拷贝。 虚基类的构造函数和初始化 虚基类的初始化与一般的多继承的初始化在语法上是一样的,但构造函数的执行顺序不同: 虚基类的构造函数的执行在非虚基类的构造函数之前。 若同一层次中包含多个虚基类,这些虚基类的构造函数按对他们说明的先后次序执行。 若虚基类由非虚基类派生而来,则仍然先执行基类的构造函数,再执行派生类的构造函数。 1-* 北京源智天下科技有限公司 联系方式: 联系方式: 北京源智天下科技有限公司 第十一讲:继承 杨章伟 e-mail:jtclass@163.com 课程内容安排 继承与派生 访问控制 派生类的构造和析构函数 多重继承 虚基类 综合练习 思考和
您可能关注的文档
- 第四章 客户价值.ppt
- m_ExternalProcedure_FV案例演示.ppt
- LCD设计基本知识培训.ppt
- axx_人际关系技巧精华版.ppt
- 晶体管及其小信号放大(3).ppt
- 红星美凯龙时尚凡尔赛圣诞活动方案.ppt
- 体育建筑存在的问题.ppt
- 图形的变换与坐标1.ppt
- 数控铣床和加工中心编程与操作课件项目九.ppt
- 管理信息系统(第5章).ppt
- 广东省东莞市2024-2025学年八年级上学期生物期中试题(解析版).pdf
- 非遗剪纸文创产品开发经理岗位招聘考试试卷及答案.doc
- 广东省东莞市2024-2025学年高二上学期期末教学质量检查数学试题.pdf
- 体育安全理论课件图片素材.ppt
- 3.1 公民基本权利 课件-2025-2026学年道德与法治八年级下册 统编版 .pptx
- 广东省潮州市湘桥区城南实验中学等校2024-2025学年八年级上学期期中地理试题(解析版).pdf
- 大数据运维工程师岗位招聘考试试卷及答案.doc
- 广东省深圳市福田区八校2026届数学八年级第一学期期末教学质量检测模拟试题含解析.doc
- 广东省潮州市湘桥区城基初级中学2024-2025学年八年级上学期11月期中考试数学试题(解析版).pdf
- 广东省潮州市湘桥区城西中学2024-2025学年八年级上学期期中地理试题(解析版).pdf
最近下载
- 基于Comsol+Multiphysic的含瓦斯煤岩流固耦合模型与数值模拟研究.docx VIP
- 机电安装标准模块做法解析.pdf VIP
- 醇基燃料安全技术说明书.docx VIP
- 湖北省武汉市武昌区2023-2024学年四年级上学期期末质量监测语文试卷.docx VIP
- 矿井工作面通风设计浅谈(采矿张瑞功).doc VIP
- PW1555-2.0数据手册下载.pdf VIP
- 高中数学 北师大版必修二 三角恒等变换 第七课时 二倍角的三角函数公式 二倍角公式 教学设计.docx VIP
- TDLAS技术在硫磺回收装置中的应用.pdf
- 一种淤浆法生产高黏CMC的制备工艺.pdf VIP
- 初中语文语文版所有古诗.doc VIP
原创力文档


文档评论(0)