C++程序设计第9章 继承与派生类.ppt

  1. 1、本文档共64页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第9章 继承与派生类 9.1 继承的基本概念 9.2 访问控制 9.3 派生类的构造和析构函数 9.4 派生类成员的标识与访问 9.5 赋值兼容规则 9.6 程序举例 教学目的 1.理解继承的含义,掌握派生类的定义方法和实现; 2.理解公有继承下基类成员对派生类成员和派生类对象的可见性,能正确地访问继承层次中的各种类成员; 3.理解保护成员在继承中的作用,能够在适当的时候选择使用保护成员以便派生类成员可以访问基类的部分非公开的成员; 4. 理解虚函数在类的继承层次中的作用,虚函数的引入对程序运行时的影响,能够对使用虚函数的简单程序写出程序结果 教学内容 1.?????? 继承的基本概念 2.?????? 继承的工作方式 3.?????? 派生类的构造 4.?????? 成员访问控制 5.?????? 类属类 6. 多重继承 面向对象的程序设计中提供了类的继承机制,允许程序员在保持原有类特性的基础上,进行更具体、更详细的说明。以原有的类为基础产生新的类,我们就说新类继承了原有类的特征,也可以说是从原有类派生出新类。派生新类的过程一般包括吸收已有类的成员、调整已有类成员和添加新的成员三个步骤。本章围绕派生过程,着重讨论不同继承方式下的基类成员的访问控制问题、添加构造函数和析构函数;接着我们还将讨论在较为复杂的继承关系中的类成员的唯一标识和访问问题;最后给出类的继承实例。 9.1 继承的基本概念 9.1.1 继承与派生的实例 类的继承和派生的层次结构,可以说是人们对自然界中的事物进行分类、分析和认识的过程在程序设计中的体现。现实世界中的事物都是相互联系、相互作用的,人们在认识过程中,根据他们的实际特征,抓住其共同特性和细小差别,利用分类的方法进行分析和描述。比如对于交通工具的分类,见图9-1。这个分类树反映了交通工具的派生关系,最高层是抽象程度最高的,是最具有普遍和一般意义的概念,下层具有了上层的特性,同时加人了自己的新特征,而最下层是最为具体的。在这个层次结构中,由上到下,是一个具体化、特殊化的过程;由下到上,是一个抽象化的过程。上下层之间的关系就可以看作是基类与派生类的关系。 9.1.2 派生类的声明 在C++中,派生类的一般声明语法为: class 派生类名:继承方式 基类名1,继承方式 基类名2,…, 继承方式 基类名n { 派生类成员声明; }; 例如,假设基类Base1,Base2是已经声明的类,下面的语句声明了一个名为Dr1的派生类,该类从基类Base1,Base2派生而来: class Dr1:public Base1,private Base2 { public: Dr1(); ~Dr1(); }; 声明中的“基类名”(如Base1,Base2)是已有的类的名称,“派生类名”是继承原有类的特性而生成的新类的名称(如Dr1)。一个派生类可以同时有多个基类,这种情况称为多继承,这时的派生类同时得到了多个已有类的特征。 上述例子就是一个多继承实例。一个派生类只有一个直接基类的情况,称为单继承。 多继承和单继承时基类和派生类之间的关系可以用图9-2描述。单继承可以看作是多继承的一个最简单的特例,多继承可以看作是多个单继承的组合,它们之间的很多特性是相同的,我们的学习首先从简单的单继承开始。 在派生过程中,派生出来的新类也同样可以作为基类再继续派生新的类,此外,一个基类可以同时派生出多个派生类。也就是说,一个类从父类继承来的特征也可以被其他新的类所继承,一个父类的特征,可以同时被多个子类继承。这样,就形成了一个相互关联的类的家族,有时也称作类族。在类族中,直接参与派生出某类的基类称为直接基类,基类的基类甚至更高层的基类也称为间接基类,比如A类派生出B类,B类又派生出C类,则B类是C类的直接基类,A类是B类的直接基类,而A类可以称为C类的间接基类。 在派生类的声明中,除了要指定基类外,还需要指定继承方式。继承方式规定了如何访问从基类继承的成员。在派生类的声明中,每一个“继承方式”只限定紧随其后的基类。继承方式关键字为public,protected和private,分别表示公有继承、保护继承和私有继承。如果不显式地给出继承方式关键字,系统的默认值就认为是私有继承(private)。类的继承方式指定了派生类成员以及类外对象对于从基类继承来的成员的访问权限,这将在下一节详细介绍。 9.1.3 派生类生成过程 在C++程序设计中,进行了派生类的声明之后,给出该类的成员函数的实现,整个类就算完成了,可以由它来生成对象进行实际问题的处理。仔细分析派生新类这个

文档评论(0)

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

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

1亿VIP精品文档

相关文档