面向对象程序设计语言C+第06章继承和派生

面向对象程序设计语言C+第06章继承和派生

ID:38493342

大小:783.56 KB

页数:42页

时间:2019-06-13

面向对象程序设计语言C+第06章继承和派生_第1页
面向对象程序设计语言C+第06章继承和派生_第2页
面向对象程序设计语言C+第06章继承和派生_第3页
面向对象程序设计语言C+第06章继承和派生_第4页
面向对象程序设计语言C+第06章继承和派生_第5页
资源描述:

《面向对象程序设计语言C+第06章继承和派生》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、面向对象程序设计语言C++电子科技大学计算机学院1第六章继承和派生C++的类提供了良好的模块分解技术,也具有可重用软件所期望的品质:它们是相似一致的模块,通过信息隐藏,将它们的接口和实现清楚地分开。但是,仅有这些是不够的,我们还希望在类的基础上能取得更好的可重用性和可扩充性的目标。面向对象的继承技术提供了实现上述目标的有力手段。2第六章继承和派生6.1派生类的概念6.1.1为什么要使用继承在问题空间中,继承这个概念是非常普遍的。3交通工具分类层次图交通工具汽车飞机火车轿车旅行车慢车快车第六章继承和派生6.1派生类的概念6.1.1为什么要使用

2、继承4动物哺乳动物爬虫动物啮齿动物猿科猫科熊猫野猫家猫动物分类层次图第六章继承和派生6.1派生类的概念6.1.1为什么要使用继承在最简单的情况下,一个类B继承类A或者从类A派生类B,通常将类A称为基类(父类),类B称为派生类(子类)。这时,类B的对象具有类A对象的所有特性,甚至还会更多一些。也可以这样说,类B从类A派生出来。这意味着类B至少描述了与类A同样的接口,至少包含了同类A一样的数据,可以共享类A的成员函数。5第六章继承和派生6.1派生类的概念6.1.1为什么要使用继承6classA{public:intpubA;pirvate:in

3、tpriA;};classB:publicA{public:intpubB;private:intpriB;};(例6-1)priApubApriApubApriBpubBclassA{public:intpubA;voidset_priA(inta){priA=a;}voidset_pubA(inta){pubA=a;}voidout_priA(){cout<

4、ubB(inta){pubB=a;}voidout_B(){cout<

5、的概念6.1.1为什么要使用继承类的继承,是新的类从已有的类继承已有的特征(或已有类派生出新类)。类的派生实际是通过扩展、更改和特殊化,从一个已知类建立一个新类的过程。通过类的派生,可以建立具有共同关键特征的对象家族,从而实现父类代码的重用。9这种继承和派生机制对于已有程序的扩展和改进是极为有力的。可以描述基类和派生类的关系为:派生类是基类的具体化,基类是派生类的抽象。即基类综合了派生类的公共特征,派生类则在基类的基础上增加了某些特征,把抽象类变成具体的、实用的类型。第六章继承和派生6.1派生类的概念6.1.1为什么要使用继承C++允许派生

6、类可以重新定义基类的成员。如果派生类定义了与基类同名的成员,称派生类的成员覆盖了基类的同名成员。如果要在派生类中使用基类的同名成员,可以显式地使用下述类名限定符:类名::成员来使用基类的成员。(例6-3)11classbase2{public:inta,b;};classderived:publicbase{public:intb,c;};voidmain(){derivedd;d.a=1;d.base::b=2;//注意base::b使用的是base类的数据成员bd.b=3;//使用的是derived类的数据成员bd.c=4;base*b

7、p=&d;//指向基类对象的指针变量可以指向派生类的对象//因为派生类对象包含有一个基类对象bp->c=10;//错误:bp仅能访问派生类中继承的基类成员bp->a=11;bp->b=12;}第六章继承和派生6.1派生类的概念派生类可以:(1)继承基类的所有成员:将基类成员全盘吸收。这样,派生类实际上包含了他所有基类中除了构造和析构函数之外的所有成员;(2)改造基类成员:一个通过不同的派生方式改造基类成员的访问控制问题;第二个方法就是在派生类中声明一个和基类成员同名的成员覆盖基类成员进行改造;(3)增加新的成员:根据派生类的实际特征,增加不

8、同于基类的成员。13第六章继承和派生6.1派生类的概念6.1.2派生类的声明和继承方式C++中,派生类的一般语法形式为class派生类名:基类类名,…{…};其中

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

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

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