1. 1、本文档共30页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c继承

继承 目 录 继承概述 派生类 本章单词 继承概述 继承是面向对象程序设计中最重要的机制,改变了非面向对象程序设计中项目需求改变后处理的方法,克服了程序无法重用的缺点 在面向对象的程序设计中,对现实中的事物进行抽象与封装形成了类,但是类也具有共性和个性,为了重用共性与体现个性,可以使用继承来实现 继承的层次结构 在现实生活中许多事物具有继承性,人们一般使用层次分类的方法来描述他们,通过层次结构简化了人们对象事物的认识与描述 继承的作用 大型应用程序的设计完成并交付后,经常面临用户的需求的变化,程序功能的扩充。 对于需求的变化,需修改源代码,会对其他的模块产生影响,需进行全面的测试 对于功能的扩充,可能与之前的模块功能类似,需进行模块的复制 派生类 派生类是指在基类的基础上通过继承产生的类 派生类自动继承了基类的成员,并可以展现自己的个性 派生类的定义语法: class 派生类名:[private|protected|public] 基类名 { 派生类成员变量和成员函数定义 }; 1,关键字private、protected和public表示了三种不同的继承方式, 使用关键字private的继承方式称做私有继承; 使用关键字protected的继承方式称做保护继承; 使用关键字public的继承方式称做公有继承。 2,在用继承方法产生派生类时,上述三种继承方式的关键字必须选择一个,也只能选择一个。如果一个继承方式关键字都没有选,则默认继承方式是private。 派生类的构造与析构函数 派生类继承了基类的成员,但是有2个特殊的成员不能被继承: 构造函数 析构函数 派生类的基类子对象 当创建派生类的对象时,也创建了基类的一个对象,是以子对象的形式创建的 由于基类是派生类的子对象,所以在创建派生类时需要创建基类对象,也就是要调用基类的构造函数 派生类的3种继承方式 派生类可以使用3种继承方式产生: private 私有继承 protected 保护继承 public 公有继承 基类的中的私有成员不管那种方式继承,派生类都不能继承 基类中的保护与公有成员,由继承方式与成员访问修饰符共同决定:以小为标准(private最小,protected中间,public最大) 继承规则 公有继承, 基类中的private成员不能继承 基类中的protected成员继承为派生类的protected成员 基类中的public成员继承为派生类的public成员 保护继承 基类中的private成员不能继承 基类中的protected与public成员继承为派生类的protected成员 私有继承 基类中的private成员不能继承 基类中的protected与public成员继承为派生类的private成员 课堂作业 编写代码验证 基类中的保护成员使用保护继承时继承为派生类的保护成员 成员函数的继承 通过继承,派生类具有基类的共性,但是派生类也要个性,派生类可以重新设计基类中定义的函数来体现,有如下3种情况: 完成继承 覆盖继承 扩充继承 课堂作业 根据图书馆的图书和杂志信息关系,设计一个每个读者最多可借5本图书和10本杂志的简单图书和杂志借阅系统。 图书馆有两种类型的资料,一种是图书,另一种是杂志。图书和杂志有一些共同的地方,因此可以设计一个资料类作为它们的基类。资料类的成员变量包括名字和条码。图书类的成员变量除继承基类的名字(书名)和条码外,还包括作者和内部分类号。杂志类的成员变量除继承基类的名字(杂志名)和条码外,还包括卷号。 读者要借阅图书或杂志,就要设计一个读者类。读者类的成员变量包括读者姓名、借书证号。由于每个读者最多可借5本图书和10本杂志,因此,要分别设计一个所借图书线性表和所借杂志线性表,每个线性表分别包括一个保存图书或杂志的数组成员变量和一个记录已借图书或已借杂志数目的成员变量。 类图 主程序 主程序运行后的效果图 多重继承 多重继承是指一个派生类可以从多个不同的直接基类中继承成员 多重继承的二义性问题 C++支持多重继承,在继承过程中会产生命名冲突问题,命名冲突问题是指在继承过程中2个或者2个以上的基类中具有相同的成员,通过继承会在派生类中产生二义性,编译器无法确定派生类的对象调用那个基类继承下来的成员 二义性分为2类 非重复继承产生的命名冲突 当2个或2个以上的基类有相同的成员 重复继承产生的命名冲突 间接继承一个基类2次或者多次 虚基类保证任何一个存在公共基类的派生类中,不会存在一个以上的成员 多重继承中对象的生命周期 在多重继承中,构造函数按照下列顺序进行调用: (1) 任何虚拟基类的构造函数按照它们被继承的顺序进行调用。 (2) 任何非虚拟基类的构造

文档评论(0)

糖糖 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档