- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
文件-Read
第九章 类的继承与多态性 9.1 类的继承 继承的实质:是从已有的类建立新类。通过特殊化已有的类来建立新类的过程称为类的派生。 9.2 类的虚函数与多态性 虚函数:用关键字 virtual 修饰的成员函数。 9.3 类的静态成员 9.4 类模板 习题九 * 9.1 类的继承 9.2 类的虚函数与多态性 9.3 类的静态成员 9.4 类模板 继承是面向对象程序设计的最重要的特点之一,是软件重用的 一种重要形式,是对实际问题中分层特性的一种自然描述。 类的继承创建了一种类的层次结构(类等级、类族)。 建筑物类层次图: 建筑物 房屋 桥梁 纪念塔 平房 楼房 办公楼 居民楼 施工单位、竣工日期等 建筑面积 建筑高度、宽度、长度 塔高、形状 庭院面积 楼层数、电梯数 值班电话 居民户数、居住人数 原有的类叫做基类或父类;新建立的类叫做派生类或子类。 9.1.1 派生类定义的格式 class 派生类名 :基类表 { 派生类自己的成员 }; 通过继承,派生类自动拥有基类的所有成员(数据成员和成员函数)。 其中: 派生类名:是用户命名的标识符,用于标识新定义的类。 基类表:用于指明派生类的基类,基类可以有一个或多个, 单继承:派生类只有一个直接基类,简单。 多继承:派生类有多个直接基类,复杂、易出错,但功能强大。 每个基类前面应有一个继承权限指明符(继承方式)。 public:公有继承(公有派生),是最常用的。 基类的公有成员在派生类中仍是公有的; 基类的保护成员在派生类中仍是保护的; 基类的私有成员在派生类中是不可直接访问的。 继承权限指明符:用于规定基类成员在派生类中的访问属性。 private:私有继承(私有派生),不利于进一步派生,实际中用的不多。 基类的公有成员和保护成员在派生类中是私有的; 基类的私有成员在派生类中是不可直接访问的。 protected:保护继承(私有派生),是新生事物。 基类的公有成员和保护成员在派生类中是保护的; 基类的私有成员在派生类中是不可直接访问的。 默认的继承权限指明符为 private。 派生类构成示意图: 派生类成员 基类部分 新定义部分 公有成员 保护成员 私有成员 公有成员 保护成员 私有成员 不能直接访问 每个派生类对象所占有的存储空间的大小等于其基类部分的所有数据成员占有的存储空间的大小与新定义部分的所有数据成员占有的存储空间的大小的总和。 9.1.2 格式举例 例9-1:单继承举例。 注意:基类成员的初始化和同名成员的调用。 由例9-1可以看出: 1、在派生类的构造函数中,对属于基类的成员进行初始化是 通过在初始化表中显式调用基类的构造函数来实现的, 格式为:基类名(实参表)。 2、在派生类中定义的成员可以与基类中定义的成员具有相同 或不同的名字。 若相同时,访问当前类中定义的成员直接 写成员名即可,而访问基类中的同名成员时,必须在成员 名前加上基类名和类区分符( ::)。 3、当有多个基类时,基类构造函数的调用顺序:取决于派生类声明时 基类表中的顺序,而与初始化表中的顺序无关。析构函数的调用顺 序正好相反。 例9-2:多继承举例。 注意:构造函数和析构函数的调用顺序。 2、析构函数的执行顺序正好相反: 先执行派生类的析构函数, 接着执行类成员的析构函数, 最后执行基类的析构函数。 1、当一个派生类中同时含有类成员时,派生类构造函数的执行顺序是: 首先调用基类的构造函数实现对基类成员的初始化, 接着调用成员所属类的构造函数实现类成员的初始化, 最后实现对新定义的非类成员的初始化。 由例9-2可以看出: 9.1.3 应用举例 例9-3:编写一个程序计算出球、圆柱和圆锥的表面积和体积。 分析:由于计算它们都需要用到圆的半径,所以可先定义一 个圆类,它包含一个保护数据成员为半径,以便派生 类使用。把球类、圆柱类和圆锥类定义为圆的派生类。 对于用户定义的数据类型,C++允许同一类型对象之间相互赋值,不允许不同类型对象之间直接赋值,若非要赋值不可,则必须经过强制类型转换。 对于基类和派生类来说,情况有所不同,由于派生类对
您可能关注的文档
最近下载
- 电工技能鉴定实操题库(高级工).pdf
- GB/T38058-2024民用多旋翼无人机系统试验方法.pptx VIP
- 公园绿化养护管理制度 .pdf VIP
- 2025甘肃甘南州专业化管理的村党组织书记招聘45人笔试备考试题有答案详解.docx VIP
- 2023-2024学年重庆市凤鸣山中学数学七年级第一学期期末经典试题含解析.doc VIP
- 必威体育精装版公务员面试试题经典题及答案.docx VIP
- 长恨歌意象研讨分析.pdf VIP
- 2025甘肃张掖市专业化管理村党组织书记招聘32人备考试题及答案解析.docx VIP
- 江西省临川第一中学2024-2025学年高一上学期开学考试数学试题(解析版).docx VIP
- QSR质量手册(超详模板).doc VIP
文档评论(0)