第15章 财富的积累——继承.ppt

第15章 财富的积累——继承.ppt

ID:48754040

大小:232.50 KB

页数:17页

时间:2020-01-21

第15章  财富的积累——继承.ppt_第1页
第15章  财富的积累——继承.ppt_第2页
第15章  财富的积累——继承.ppt_第3页
第15章  财富的积累——继承.ppt_第4页
第15章  财富的积累——继承.ppt_第5页
资源描述:

《第15章 财富的积累——继承.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第15章财富的积累——继承C++中类机制中有一个重要的部分就是继承机制。继承可以使类与类之间建立一种上级和下级的关系,或者说是上一代和下一代的关系。通过继承机制程序员可以通过提供来自另外一个类的操作和数据成员来创建新的类,只要在新类中定义已有类型没有的成分就可以建立新的类了。这种继承机制正式面向对象编程所具有的优势之一,它可以使已经编写过的代码不需要被丢弃,经过适合现在应用的修改就能重新使用。15.1继承的概念通过继承,可以从已有的类派生出新类,新类在已有类的基础上新增自己的特性;被继承的已有类称为基类(父类),派生出的新类称为派生类(子类);继承可以减少代码的冗余

2、性,实现代码的重用,并且通过作少量的修改,满足不断变化的具体应用要求,提高程序设计的灵活性。正如一个人有父亲和母亲一样,一个新的子类也可以继承来自不同父类的东西,这就是多重继承。15.1继承的概念15.2定义基类与派生类基类和派生类的定义大体上和一般的类的定义相似,但是在继承层次中定义类还是有一些特殊的地方的,在本节中将介绍基类和派生类是怎样定义的。我们定义类baseclass为基类。classbaseclass{inta,b;public:baseclass(constintx=0,constinty=0):a(x),b(y){};virtualfuc()cons

3、t;~baseclass(){};protected:stringstr;}15.3继承方式继承方式指定了派生类成员以及类外对象对继承来的成员的访问权限。在C++中有三种继承方式:公有继承(public);保护继承(protected);私有继承(private)。具有protected访问控制级别的成员是半公开的,外界无法直接访问这个控制级别的成员,但是派生类的this指针可以获得访问能力。protected与private基本相似,只有在继承时有较大的区别。继承的类可以访问protected成员,但是不能访问private成员。15.3.1公有继承在共有继承中将

4、基类的protected区成员继承到派生类的protected区,基类的public区的成员继承到派生类的public区;派生类中的成员函数可以直接访问基类中的public和protected成员,但不能访问基类的private成员;外部函数中,派生类的对象只能访问基类的public成员。15.3.2保护继承保护继承是将基类的protected区和public区的所有成员都继承到派生类的protected区;派生类中的成员函数可以直接访问基类中的public和protected成员,但不能访问基类的private成员;外部函数中,派生类的对象不能访问基类中的任何成员

5、。首先我们来了解一下protected限制符的作用,注意只要是使用protected限制的类成员,则只有在类的成员函数定义中或者是在类定义体中使用是正确的,在外部函数中类的对象是不能使用protected限制的类成员的。15.3.3私有继承私有继承方式将基类的protected区和public区的所有成员都继承到派生类的private区;派生类中的成员函数可以直接访问基类中的public和protected成员,但不能访问基类的private成员;外部函数中,派生类的对象不能访问基类中的任何成员。15.4派生类的构造与析构派生类不继承基类的构造函数和析构函数,但是能

6、调用基类的构造函数和析构函数。派生类的构造函数总是先调用基类的构造函数来初始化派生类中的基类成员,再进行派生类中成员的初始化。派生类构造函数的定义中,要提供基类构造函数所需要的参数。如果派生类没有用户自定义的构造函数,执行其默认构造函数时,首先调用基类的构造函数。析构函数的调用顺序和构造函数的调用顺序相反。子类的构造函数要有一个默认的父类的构造函数对应。15.4派生类的构造与析构15.5组合与继承组合是指一个类的数据成员是另一个类的对象。继承和组合都利用了已经定义的类,但是类之间关系上有差别。构造函数的调用顺序如下:首先调用基类构造函数;然后调用各成员对象的构造函数

7、,调用顺序按照它们在类中声明的顺序;最后执行派生类的构造函数体中的内容。15.6赋值兼容原则一个公有继承的派生类对象可以隐式转化为一个基类对象,包括以下几种情况:用派生类的对象给基类对象赋值;用派生类的对象来初始化基类对象的引用;把派生类对象的地址赋值给指向基类对象的指针;把指向派生类对象的指针赋值给指向基类对象的指针。在隐式转化中应当注意访问范围。基类对象是不能代替派生类对象的。15.7多重继承当定义派生类的时候可以继承来自不同基类的东西,这就是多重继承。有的时候派生类只继承一个类的性质不能够实现需要的功能,这时候就需要好几个基类来共同描述子类的性质。15.7

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

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

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