C++课件,从零开始.ppt

C++课件,从零开始.ppt

ID:48031413

大小:275.50 KB

页数:45页

时间:2020-01-13

C++课件,从零开始.ppt_第1页
C++课件,从零开始.ppt_第2页
C++课件,从零开始.ppt_第3页
C++课件,从零开始.ppt_第4页
C++课件,从零开始.ppt_第5页
资源描述:

《C++课件,从零开始.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C++程序设计教程(第二版)第十章继承Chapter10Inheritance8/31/20211第十章内容继承结构(InheritanceStructure)访问父类成员(AccessFather’sMember)派生类的构造(ConstructingDerivedClasses)继承方式(InheritanceMode)继承与组合(Inheritance&Composition)多继承概念(Multi-InheritanceConcept)多继承技术(Multi-InheritanceTechnology)8/31/2021

2、21.继承结构(InheritanceStructure)宇宙万事万物都是分类分层的,解决问题可以从事物之间的上下关系中着手.这是继承引入程序设计的前提.例如:已知鸟的属性,鸭子是什么的描述便可以在鸟的基础上进行:除了是鸟之外,还会一种区别于其他鸟的特殊的嘎嘎叫.因为鸭子不会飞,于是就在继承鸟的属性中去掉会飞的属性.8/31/20213继承是面向对象程序设计的基本特征之一,是从已有的类基础上建立新类。继承性是面向对象程序设计支持代码重用的重要机制。8/31/20214面向对象程序设计的继承机制提供了无限重复利用程序资源的一种途径

3、。通过C++语言中的继承机制,一个新类既可以共享另一个类的操作和数据,也可以在新类中定义已有类中没有的成员,这样就能大大的节省程序开发的时间和资源。8/31/20215继承是类之间定义的一种重要关系。定义类B时,自动得到类A的操作和数据属性,使得程序员只需定义类A中所没有的新成分就可完成在类B的定义,这样称类B继承了类A,类A派生了类B,A是基类(父类),B是派生类(子类)。这种机制称为继承。8/31/20216称已存在的用来派生新类的类为基类,又称为父类。由已存在的类派生出的新类称为派生类,又称为子类。派生类可以具有基类的特性

4、,共享基类的成员函数,使用基类的数据成员,还可以定义自己的新特性,定义自己的数据成员和成员函数。8/31/20217在C++语言中,一个派生类可以从一个基类派生,也可以从多个基类派生。从一个基类派生的继承称为单继承;从多个基类派生的继承称为多继承。8/31/20218B1,B2的派生类(多继承)AB1B2C1C2C3A的派生类(单继承)C3的基类B1,B2的基类A的派生类C1,C2,C3的基类B1的派生类图11-1类之间的继承与派生关系8/31/20219单继承的定义格式如下:class<派生类名>:<继承方式><基类名>{pu

5、blic://派生类新定义成员members;members;members;};8/31/202110其中,<派生类名>是新定义的一个类的名字,它是从<基类名>中派生的,并且按指定的<继承方式>派生的。<继承方式>常作用如下三种关键字给予表示:public:表示公有继承;private:表示私有继承,可默认声明;protected:表示保护继承。8/31/202111派生类对象结构对于下面的继承关系:超类:classFather{inta,b;public://成员函数};子类:cl

6、assSon:publicFather{intc;public://成员函数};基类对象子类对象ab子类对象空间总是不小于基类对象cab基类部分子类添加部分8/31/2021122.访问父类成员(AccessFather’sMember)捆绑子类对象可以访问父类成员函数和自身成员函数;捆绑基类对象只能访问基类成员函数,不能访问子类成员函数,这是自然的:Studentds(“Jenny");GraduateStudentgs(“Smith”);ds.addCourse(3,2.5);ds.display();gs.addCours

7、e(3,3.0);gs.display();gs.getQualifier();ds.getQualifier();//error8/31/202113子类也是基类的用户,其成员函数不能访问基类的私有成员.但子类可以区别于外来用户,让基类protected成员允许子类对象访问而不许外来对象访问.例如,对于基类:classFather{inta;protected:voidfp(){cout<

8、isp();//okd.fp();//errorFatherf;f.print();//okf.fp();//error}子类用户:classSon:publicFather{intb;public:voiddisp(){fp();//okprint();//o

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。