- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第05章类的继承与派生
C++面向对象程序设计 第5章 类的继承与派生 5.1 类的继承与派生 5.2 继承的三种方式(访问控制) 5.3 派生类的构造函数和析构函数 5.4 多继承和虚基类 5.5 赋值兼容规则 5.1 继承与派生 5.1.1 类的继承与派生 5.1.2 基类与派生类 5.1.3 派生类的声明 5.1.4 派生类生成过程 5.1.1 类的继承与派生 保持已有类的特性而构造新类的过程称为继承。 在已有类的基础上新增自己的特性而产生新类的过程称为派生。 被继承的已有类称为基类(或父类)。 派生出的新类称为派生类。 5.1.2 基类与派生类 汽车类派生出卡车类。在此过程中,我们称汽车类为基类,卡车类为汽车类的派生类。 几何形状派生出圆类和矩形类。几何形状类为基类,圆类和矩形类都是它的派生类。 雇员类派生出管理人员类和销售人员类等。(这里还涉及到多继承) 面向对象程序设计提供了类的继承机制,该机制自动的为派生类提供了其基类的操作和属性,大大的提高了代码的重用率。 5.1.3 派生类的声明 C++中声明派生类的形式为: 声明中的“基类名”是已经存在的类的名称,“派生类名”是在已存在的类的基础上通过添加成员而得到的新类。当派生类只有一个直接基类的继承情况,称为单继承。当派生类同时有多个基类的继承情况,称为多继承。 5.1.3 派生类的声明 访问权限控制是指的继承方式,有公有继承public) ,私有继承(private),保护继承(protected),默 认为私有继承。 5.1.3 派生类生成过程 派生类生成过程中需要指定派生类的类名,继承方式和新增成员。 派生类的生成过程可分为三个步骤:吸收基类成员﹑改造基类成员和添加新的成员。 吸收基类成员:将基类除构造函数和析构函数以外的成员全部接受。 改造基类成员:根据继承方式决定基类成员在派生类中的访问控制问题。 添加新的成员:派生类新增成员是派生类不同于基类的地方,也是继承和派生机制的关键所在。 5.2 访问控制(继承方式) 由基类派生出派生类的目的是为了重用基类的特性, 因此,对基类成员的继承是非常重要的。那么,在派 生类中,基类的成员是否和派生类自己定义的成员享 有同样的待遇呢?派生类的成员是不是可以自由地访 问基类的成员呢?基类成员的访问控制是否在派生类 其不变呢?这些都可以从派生类对基类的继承方式中 找到答案。 5.2 访问控制(继承方式) 5.2.1 公有继承 5.2.2 私有继承 5.2.3 保护继承 5.2.4 多继承 不同继承方式的影响主要体现在: 1、派生类成员对基类成员的访问控制。 2、派生类对象对基类成员的访问控制。 5.2.1 公有继承 类的继承方式为公有继承的时候,基类的公有和保护成员在派生类中访问权限不变,而基类的私有成员在派生类中不可直接访问。 派生类中的成员函数可以直接访问基类中的public和protected成员,但不能访问基类的private成员。 通过派生类的对象只能访问基类的public成员。 5.2.2 私有继承 类的继承方式为私有继承的时候,基类中的公有和保护成员被吸收后成为派生类的私有成员,而基类的私有成员在派生类中不可直接访问。 派生类中的成员函数可以直接访问基类中的public和protected成员,但不能访问基类的private成员。 通过派生类的对象不能访问基类中的任何成员。 注:为什么这里要加一个move函数,基类不是有吗?能否用派生类的对象去访问基类的呢? 5.2.3 保护继承 当类的继承方式为保护继承的时候,基类中的公有和保护成员被吸收后成为派生类的保护成员,而基类中的私有成员在派生类中不可直接访问。 派生类中的成员函数可以直接访问基类中的public和protected成员,但不能访问基类的private成员。 通过派生类的对象不能访问基类中的任何成员。 5.2.3.1 Protected成员的特点与作用 对建立其所在类对象的模块来说(水平访问时),它与private成员的性质相同。 对于其派生类来说(垂直访问时),它与public成员的性质相同。 既实现了数据隐藏,又方便继承,实现代码重用。 当你希望在派生类能访问它,在类外不能访问它时,最好定义为protected形式。 Protected成员举例 class A { protected: int x; }; void main() { A a; a.x=5;//错误 } class A { protected: int x; }; class B:public A { pulbic: void function(); }; void B::funct
您可能关注的文档
- 第04章-1GPIO.ppt
- 装甲防护与穿甲力学.ppt
- 高英第五册,第六册翻译答案.doc
- 第04章-直流电机拖动基础.ppt
- 西乡装饰公司绿色系装修设计效果图.ppt
- 高血压要对症下“药”选择合适自己的食谱.doc
- 高血压读书笔记.doc
- 第04章C++程序的结构.ppt
- 高财会复习整理.doc
- 高财参考资料.doc
- 2025至2030中国移动治疗台行业发展研究与产业战略规划分析评估报告.docx
- 2025至2030链激酶行业细分市场及应用领域与趋势展望研究报告.docx
- 2025至2030爆炸物探测扫描仪行业市场占有率及有效策略与实施路径评估报告.docx
- 2025至2030四川省智能制造行业细分市场及应用领域与趋势展望研究报告.docx
- 2026届高三二轮复习试题政治大单元突破练1生产资料所有制与分配制度含解析.docx
- 2026届高三二轮复习试题政治大单元突破练16哲学基本思想与辩证唯物论含解析.docx
- 2026届高三二轮复习试题政治大单元突破练2社会主义市场经济体制含解析.docx
- 浙江省衢州市五校联盟2025-2026学年高二上学期期中联考技术试题-高中信息技术含解析.docx
- 浙江省金丽衢十二校2026届高三上学期11月联考政治试题含解析.docx
- 2026届高三二轮复习试题政治大单元突破练7领导力量:中国共产党的领导含解析.docx
原创力文档


文档评论(0)