- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
类的派生:通过特殊化已有的类来建立新类的过程 基类(父类):原有的类:例如Person类 派生类(子类):新建立的类:例如Employee类 继承:派生类自动地将基类的所有成员作为自己的成员 派生新类时,可以对派生类做的变化: 单一继承:派生类只能有一个基类 多重继承:派生类有多个基类 单一继承 派生方式: 公有派生:关键字public 私有派生(默认值):关键字private 公有派生和赋值兼容规则 基类成员的访问权限 基类的公有成员在派生类中仍然是公有的 基类的保护成员在派生类中仍然是保护的 基类的不可访问的和私有的成员在派生类中也仍然是不可访问的 总结继承的访问权限 公有派生:基类中成员的访问权限在派生类中保持不变 私有派生:基类中成员的访问权限在派生类中都是私有的 保护方式的派生 公有基类成员在派生类中是保护的 派生类定义可访问这些保护成员,但派生类对象不能访问这些保护成员 定义:一个派生类具有多个基类的派生方法 多重继承声明的形式 class 派生类名:访问控制 类名1,…,访问控制n 类名n{ //派生类新增的数据成员和成员函数 }; 构造函数与析构函数调用顺序 定义派生类的构造函数的一般形式为: Y::Y(参数表0):X1(参数表1),X2(参数表2),…Xn(参数表n) {//… } 对于单一继承允许省略基类名 Y::Y(参数表0):(参数表1) 冒号后的列表称为成员初始化列表,表中各项用逗号隔开,参数表给出所调用的构造函数所需要的实参。 省略初始化列表的条件:基类必须定义有缺省(无参)构造函数或根本没有构造函数。 派生类构造函数和析构函数的执行顺序 先执行基类的构造函数,随后执行派生类的构造函数 先执行派生类的析构函数,随后执行基类的析构函数 派生类构造函数和析构函数的构造规则 派生类不能继承基类中的构造函数和析构函数 基类含有带参数的构造函数时,派生类必须定义构造函数 派生类含有对象成员时,构造函数的一般形式为 Y(参数表):X1(参数表),对象成员名1(参数表),…,对象成员名n(参数表) 构造函数的执行顺序(撤消和其相反) 基类的构造函数 对象成员的构造函数 派生类的构造函数 构造函数定义的形式:X(参数表):X1(参数表),X2(参数表),… 基类构造函数执行顺序按它们被继承时所说明的顺序(从左到右)依次调用。 多重继承时构造函数与析构函数调用顺序 * * * * * 王彦 wy@ae-sjtu.net 第四章 继承和派生类 汽车 专用汽车 运输汽车 货车 客车 消防车 洒水车 最普遍、最一般,可以自行驱动 含有汽车的特性,同时与汽车有不同 例如:现有person类 class Person{ private: char name[10]; int age; char sex; public: void print(); }; 要声明雇员类employee class Employee{ private: char name[10]; int age; char sex; char department[20]; float salary; public: void print(); }; 继承可以避免代码的严重重复,提高代码的可重用性 继承和派生的基本概念 继承和派生的基本概念 可增加新的成员变量 可增加新的成员函数 可重新定义已有的成员函数 可改变现有成员的属性 继承和派生的基本概念 考虑:在一个圆内显示文本 在Circle类中添加字符串数据成员,添加公有的成员函数Show,使它显示文本 文本和圆是截然不同的概念:文本与之相关的是字符大小等属性。在处理根本不同的功能时,建立新的“基类”,并把适当的特征结合起来派生出一个特定的类。 声明一个派生类的一般格式为: class 派生类名:访问控制 基类名{ //派生类新增的数据成员和成员函数 }; 访问控制:用于规定基类成员在派生类中的访问权限。缺省时为private 1.定义基类(person类) class person{ private: char name[10]; int age; char sex; public: void print(); }; 2.定义派生类(employee类) class employee:public person{ char department[10]; float salary; public: }; 派生类employee继承类person的全部特性。 单一继承 单一继承 class Location{ private: int X,Y; public: void
您可能关注的文档
最近下载
- 造价咨询项目实施阶段全过程造价咨询服务方案造价咨询总体服务方案工作流程重难点分析造价偏差处理.doc VIP
- Three Times’ Beating Monster西游记三打白骨精英语剧本.doc VIP
- 2026国网山东省电力公司高校毕业生提前批招聘笔试模拟试题及答案解析.docx VIP
- 部编版小学四年级道德与法治上册第三单元测试卷(含答案).docx VIP
- 关爱留守儿童教案.pdf VIP
- 医院纪检干部培训课件.ppt VIP
- 教科版四年级上册科学第一单元测试卷(含答案).docx
- 北师大八年级上册生物全册新质教学课件(配2025年秋改版教材).pptx
- 学校传染病防控1案8制(疫情).doc VIP
- 电影剧本精选_灵魂拒葬.pdf VIP
文档评论(0)