C++面向对象程序设计教学课件曹静第05章 类的继承与派生.ppt

C++面向对象程序设计教学课件曹静第05章 类的继承与派生.ppt

ID:50082313

大小:339.00 KB

页数:22页

时间:2020-03-08

C++面向对象程序设计教学课件曹静第05章 类的继承与派生.ppt_第1页
C++面向对象程序设计教学课件曹静第05章 类的继承与派生.ppt_第2页
C++面向对象程序设计教学课件曹静第05章 类的继承与派生.ppt_第3页
C++面向对象程序设计教学课件曹静第05章 类的继承与派生.ppt_第4页
C++面向对象程序设计教学课件曹静第05章 类的继承与派生.ppt_第5页
资源描述:

《C++面向对象程序设计教学课件曹静第05章 类的继承与派生.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第5章类的继承与派生5.1继承与派生5.2继承的三种方式5.3派生类的构造函数和析构函数5.4多继承和虚基类5.5赋值兼容规则2021/9/7C++面向对象程序设计5.1继承与派生5.1.1基类与派生类5.1.2派生类的声明5.1.3派生类生成过程2021/9/7C++面向对象程序设计5.1.1基类与派生类以原有的类为基础产生新类,我们就说从原有的类派生出新类。在这个过程中原有的类称为基类,新类称为派生类。汽车类派生出卡车类。在此过程中,我们称汽车类为基类,卡车类为汽车类的派生类。面向对象程序设计提供了类的继承机制,该机制自动的

2、为派生类提供了其基类的操作和属性,大大的提高了代码的重用率。2021/9/7C++面向对象程序设计5.1.2派生类的声明C++中声明派生类的形式为:声明中的“基类名”是已经存在的类的名称,“派生类名”是在已存在的类的基础上通过添加成员而得到的新类。当派生类只有一个直接基类的继承情况,称为单继承。当派生类同时有多个基类的继承情况,称为多继承。class派生类名:继承方式基类名1,继承方式基类名2,…,继承方式基类名n{派生类的成员声明;};2021/9/7C++面向对象程序设计5.1.3派生类生成过程派生类生成过程中需要指定派生类

3、的类名,继承方式和新增成员。派生类的生成过程可分为三个步骤:吸收基类成员﹑改造基类成员和添加新的成员。吸收基类成员:将基类除构造函数和析构函数以外的成员全部接受。改造基类成员:根据继承方式决定基类成员在派生类中的访问控制问题。添加新的成员:派生类新增成员是派生类不同于基类的地方,也是继承和派生机制的关键所在。2021/9/7C++面向对象程序设计5.2继承的三种方式5.2.1公有继承5.2.2私有继承5.2.3保护继承2021/9/7C++面向对象程序设计5.2.1公有继承类的继承方式为公有继承的时候,基类的公有和保护成员在派生

4、类中访问权限不变,而基类的私有成员在派生类中不可直接访问。公有继承的应用举例。classCircle:publicPoint{private:floatr;public:voidStart(floatX,floatY,floatR){Point::Start(X,Y);r=R;}floatGetR(){returnr;}};2021/9/7C++面向对象程序设计5.2.2私有继承类的继承方式为私有继承的时候,基类中的公有和保护成员被吸收后成为派生类的私有成员,而基类的私有成员在派生类中不可直接访问。私有继承应用举例。classC

5、ircle:privatePoint{private:floatr;public:voidStart(floatX,floatY,floatR){Point::Start(X,Y);r=R;}floatGetX(){returnPoint::GetX();}floatGetY(){returnPoint::GetY();}};2021/9/7C++面向对象程序设计5.2.3保护继承当类的继承方式为保护继承的时候,基类中的公有和保护成员被吸收后成为派生类的保护成员,而基类中的私有成员在派生类中不可直接访问。保护继承的例子。clas

6、sCircle:protectedPoint{private:floatr;public:voidStart(floatX,floatY,floatR){Point::Start(X,Y);r=R;}floatGetR(){returnr;}floatGetY(){returnPoint::GetY();}};2021/9/7C++面向对象程序设计5.3派生类的构造函数和析构函数5.3.1构造函数5.3.2析构函数2021/9/7C++面向对象程序设计5.3.1构造函数派生类对象在定义的时候必须调用派生类的构造函数进行初始化工作

7、,也就是为派生类对象的数据成员赋初值。构造函数的作用是在对象被创建时用特定的方式构造对象,将对象初始化为一个特定的状态,使此对象具有区别于其它对象的特征。派生类对象的数据成员包括从基类继承的数据成员和派生类新增的数据成员,如果派生类有内嵌对象作为数据成员,那么派生类的数据成员还包括内嵌对象的数据成员。派生类对象定义的时候,构造函数需要完成上述数据成员的初始化工作。派生类构造函数声明一般语法如下:2021/9/7C++面向对象程序设计5.3.1构造函数派生类类名::派生类类名(参数列表):基类名1(参数列表1),…基类名m(参数列

8、表m),内嵌对象名1(内嵌对象参数列表1),……内嵌对象n(内嵌对象参数列表n){派生类新增成员的初始化;}派生类构造函数初始化时先调用基类构造函数完成从基类继承数据成员的初始化,接着调用内嵌对象的构造函数完成内嵌对象数据成员的初始化,最后才调用派生类构造函数完

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

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

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