- 1、本文档共39页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
继承和派生类-Read
第11章 继承和派生类 11.1 基类和派生类 11.2 单继承 11.3 多继承 11.4 虚基类 11.5 应用实例 继承是面向对象程序设计的基本特征之一,是从已有的类基础上建立新类。继承性是面向对象程序设计支持代码重用的重要机制。面向对象程序设计的继承机制提供了无限重复利用程序资源的一种途径。通过C++语言中的继承机制,一个新类既可以共享另一个类的操作和数据,也可以在新类中定义已有类中没有的成员,这样就能大大的节省程序开发的时间和资源。 11.1 基类和派生类 继承是类之间定义的一种重要关系。定义类B时,自动得到类A的操作和数据属性,使得程序员只需定义类A中所没有的新成分就可完成在类B的定义,这样称类B继承了类A,类A派生了类B,A是基类(父类),B是派生类(子类)。这种机制称为继承。 称已存在的用来派生新类的类为基类,又称为父类。由已存在的类派生出的新类称为派生类,又称为子类。派生类可以具有基类的特性,共享基类的成员函数,使用基类的数据成员,还可以定义自己的新特性,定义自己的数据成员和成员函数。 在C++语言中,一个派生类可以从一个基类派生,也可以从多个基类派生。从一个基类派生的继承称为单继承;从多个基类派生的继承称为多继承。图11-1反映了类之间继承和派生关系。 11.1.1 派生类的定义格式 单继承的定义格式如下: class派生类名 :继承方式基类名 { public: //派生类新定义成员 members; private: members; protected: members; }; 其中,派生类名是新定义的一个类的名字,它是从基类名中派生的,并且按指定的继承方式派生的。 继承方式常作用如下三种关键字给予表示: public:表示公有继承; private:表示私有继承,可默认声明; protected:表示保护继承。 多继承的定义格式如下: class派生类名 :继承方式1基类名1,继承方式2基类名2,… { public: //派生类新定义成员 members; private: members; protected: members; }; 11.1.2 派生类的三种继承方式 在介绍公有继承(public)、私有继承(private)和保护继承(protected)的继承方式前,先看一个例子。 例11-2: 参考上述实例,说明公有继承(public)、私有继承(private)和保护继承(protected)是常用的三种继承方式: 1. 公有继承(public)。 公有继承的特点是基类的公有成员和保护成员作为派生类的成员时,它们都保持原有的状态,而基类的私有成员仍然是私有的。 2. 私有继承(private)。 私有继承的特点是基类的公有成员和保护成员作为派生类的私有成员,并且不能被这个派生类的子类访问。 3. 保护继承(protected)。 保护继承的特点是基类的所有公有成员和保护成员都成为派生类的保护成员,并且只能被它的派生类成员函数或友元访问,基类的私有成员仍然是私有的。 表11-1 不同继承方式的基类和派生类特性 (1)在公有继承时,派生类的对象可以访问基类中的公有成员;派生类的成员函数可以访问基类中的公有成员和保护成员。这里,一定要区分清楚派生类的对象和派生类中的成员函数对基类的访问是不同的。 (2)在私有继承时,基类的成员只能由直接派生类访问,而无法再往下继承。 (3)对于保护继承方式,这种继承方式与私有继承方式的情况相同。两者的区别仅在于对派生类的成员而言,对基类成员有不同的可访问性。 (4)对于基类中的私有成员,只能被基类中的成员函数和友元函数所访问,不能被其他的函数访问。 11.1.3 访问控制 类通过派生定义,形成类的等级,派生类中用“类名 :: 成员”访问基类成员。在建立一个类等级后,通常创建某个派生类的对象来使用这个类等级,包括隐含使用基类的数据和函数。 派生类对基类成员可以有不同的访问方式: 派生类可以覆盖基类成员 派生类不能访问基类私有成员 基类的公有段和保护段成员访问权对派生类保持不变(公有继承) 基类的公有段和保护段成员成为派生类的私有成员(私有继承) 具体说明如下: 1. 定义与派生类同名的成员 如果派生类定义了与基类同名的成员,称派生类的成员覆盖了基类的同名成员,若要在派生类中使用基类同名成员,可以显式地使用类名限定符: 类名 :: 成员 2. 派生类不能访问基类私有成员 3. 公有继承
您可能关注的文档
- 粉末涂料在汽车车厢上的应用研究-RingierEvents.PDF
- 粒子探测系统.PPT
- 粘结与锚固-任晓丹.PDF
- 粮食和农业生物风险管理技术磋商会议议题4粮食和农业生物风险管理.PDF
- 粮农组织在相互交叉的重点领域的目标.PDF
- 精致农业学系课程架构细目图进修学士班-明道大学精致农业学系.PDF
- 糖定量测定.PPT
- 精精铟海工工.PDF
- 系统展示生命的延续过程.DOC
- 糖的定量分析---还原糖的测定.PDF
- 中级银行从业资格之中级公司信贷高分题库附参考答案详解(突破训练).docx
- 中级银行从业资格之中级公司信贷高分题库附参考答案详解(模拟题).docx
- 母婴行业公司投资研究分析.pptx
- 中级银行从业资格之中级公司信贷高分题库附参考答案详解【轻巧夺冠】.docx
- 重症肺炎的抢救与护理.pptx
- 中级银行从业资格之中级公司信贷高分题库附参考答案详解【b卷】.docx
- 鄂教科学四年级下册PPT课件大纲.pptx
- 第二章 实数 测素质 二次根式及其运算 复习巩固课件 北师大版(2025)数学八年级上册.pptx
- 中级银行从业资格之中级公司信贷高分题库推荐附答案详解.docx
- 全章热门考点整合应用 复习巩固课件 北师大版(2025)数学八年级上册.pptx
文档评论(0)