C++语言程序设计 第七章 继承性和派生类ppt课件.ppt

C++语言程序设计 第七章 继承性和派生类ppt课件.ppt

ID:59448063

大小:105.50 KB

页数:43页

时间:2020-09-18

C++语言程序设计 第七章 继承性和派生类ppt课件.ppt_第1页
C++语言程序设计 第七章 继承性和派生类ppt课件.ppt_第2页
C++语言程序设计 第七章 继承性和派生类ppt课件.ppt_第3页
C++语言程序设计 第七章 继承性和派生类ppt课件.ppt_第4页
C++语言程序设计 第七章 继承性和派生类ppt课件.ppt_第5页
资源描述:

《C++语言程序设计 第七章 继承性和派生类ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第七章继承性和派生类第七章继承性是面向对象程序设计中重要机制之一。这种机制改变了过去传统的非面向对象程序设计中那种对不再适合要求的用户定义数据类型进行改写甚至重写的方法,克服了传统程序设计方法对编写出来的程序无法重复使用而造成资源的浪费的缺点。面向对象程序设计的继承机制给我们提供了无限重复利用程序资源的一种途径。通过C++语言中的继承机制,可以扩充和完善旧的程序设计以适应新的需求,这样不仅可以节省程序开发的时间和资源,并且为未来程序设计增添了新的资源。第一节基类和派生类第七章一、基类和派生类的基本概念:定义一个新类使其包含原来类的所有成员,同时还有自己的新成员,

2、称这个新类是原来类的派生类(子类),原来类称基类(父类)。二、单继承和多继承:单继承:只有一个基类的继承。多继承:具有两个或两个以上的基类的继承。如图:ABXYZ第七章三、派生类的三种继承方式:1、公有继承方式(public):特点是基类的公有成员和保护成员作为派生类的成员时,它们都保持原有的状态,而基类的私有成员仍然是私有的。2、私有继承方式(private):特点是基类的公有成员和保护成员都作为派生类的私有成员,并且不能被这个派生类的子类所访问,而且基类的私有成员也仍然是私有的。3、保护继承方式(protected):特点是基类的所有公有成员和保护成员都成为

3、派生类的保护成员,并且只能被它的派生类成员函数或友第七章元访问,基类的私有成员仍然是私有的。四、派生类的定义格式:1、单继承的定义格式:class<派生类名>:<继承方式><基类名>{<派生类新定义成员>};2、多继承的定义格式:class<派生类名>:<继承方式1><基类名1>,<继承方式2><基类名2>…{<派生类新定义成员>};第七章五、基类与派生类的关系:1、派生类是基类的具体化:基类是对若干个派生类的抽象,而派生类是基类的具体化。基类抽取了它的派生类的公共特征,而派生类通过增加行为将抽象类变为某种有用的类型。输入设备键盘鼠标器数字化仪第七章2、派生类是

4、基类定义的延续:先定义一个抽象基类,该基类中有些操作并未实现。然后定义非抽象的派生类,实现抽象基类中定义的操作。这时,派生类是抽象的基类的实现,即可看成是基类定义的延续。这也是派生类的一种常用的方法。3、派生类是基类的组合:在多继承时,一个派生类有多于一个的基类,这时派生类将是所有基类行为组合。注意:基类和派生类是相对而言的。一个基类可以是另一个基类的派生类,这样便形成了复杂的继承第七章结构,出现了类的层次。一个基类派生出一个派生类,该派生类做另一个派生类的基类,则该派生类称为原来基类的直接派生类,而原来基类为另一个派生类的间接基类。第二节基类成员在派生类中

5、的访问权限第七章基类成员由于继承方式的不同在派生类中的访问权限不同,三种不同的继承方式的基类特性与派生类特性如表:继承方式基类特性派生类特性公有继承publicprotectedprivatepublicprotected不可访问私有继承publicprotectedprivateprivateprivate不可访问保护继承publicprotectedprivateprotectedprotected不可访问第七章1、派生类对基类成员的可访问性:(1)、在公有继承方式下,基类中成员在派生类中不变。(2)、在私有继承方式下,基类中成员在派生类中为私有。(3)、在

6、保护继承方式下,基类中成员在派生类中为保护。注意:无论哪种继承方式派生类都不能访问基类中私有成员。2、派生类对象对基类成员的可访问性:只有公有继承方式下的基类公有成员才可访问。3、派生类的派生类对基类成员的可访问性:第七章在公有继承和保护继承方式下,基类中的公有成员和保护成员都可访问。例1、分析程序中的访问权限,并回答所提的问题。#includeclassA{public:voidf1();protected:intj1;private:inti1;};第七章classB:publicA//B类对A类的继承是公有继承{public:voi

7、df2();protected:intj2;private:inti2;};classC:publicB//C类对B类的继承是公有继承{public:voidf3();};第七章回答下列问题:1、派生类B中成员函数f2()能否访问基类A中的成员:f1(),i1和j1吗?答:可以访问f1()和j1,而不可以访问i1。2、派生类B的对象b1能否访问基类A中的成员:f1(),i1和j1吗?答:可以访问f1(),而不可以访问i1和j1。3、派生类C中成员函数f3()能否访问直接基类B中的成员:f2(),j2和i2吗?能否访问间接基类A中的成员f1(),j1和i1吗?答:

8、可以访问直接基类中的f2

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

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

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