淘豆网
下载此文档放大查看缩小查看   1/29
下载文档 文档分类:IT计算机 > C/C++资料

c++课件 第九章 继承.ppt

下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表
下载前请先预览,预览内容跟原文是一样的,在线预览图片经过高度压缩,下载原文更清晰。
0/100
您的浏览器不支持进度条


播放器加载中,请稍候...
更多>>该用户其他文档
下载所得到的文件列表
c++课件 第九章 继承.ppt
文档介绍:
第第九九章章继承继承 9.1 9.1 、、继承的基本概念继承的基本概念 9.2 9.2 、、在派生类中重定义基类成员在派生类中重定义基类成员 9.3 9.3 、、在派生类中使用构造函数和析构函数在派生类中使用构造函数和析构函数 9.4 9.4 、、隐式转换及实例研究隐式转换及实例研究 9.5 9.5 、、多重继承多重继承 9.1 9.1 、、继承的基本概念继承的基本概念继承是面向对象程序设计的基本特征之一,是从已有的类基础上建立新类;新类继承(共享)现有类的属性和行为,且根据自身需要也可以定义已有类中没有的成员,这样就能大大节省程序开发的时间和资源。 A A、、基类和派生类基类和派生类继承反映类之间的关系:定义类 B时,若自动得到类 A的操作和数据,使得程序员只需定义类 A中所没有的新成分就可完成在类 B的定义,这样称 B继承 A,A派生 B,A是基类(父类), B是派生类(子类)。这种机制称为继承。称已存在的用来派生新类的类为基类,又称为父类。由已存在的类派生出的新类称为派生类,又称为子类。派生类可以具有基类的特性,共享基类的成员函数,使用基类的数据成员,还可以定义自己的新特性,定义(来源:淘豆网[http://www.taodocs.com/p-72270362.html])自己的数据成员和成员函数。在 C++ 语言中,一个派生类可以从一个基类派生,也可以从多个基类派生。从一个基类派生的继承称为单继承; 从多个基类派生的继承称为多继承。(注意: Java 只支持单继承,用接口解决多继承问题) B1 , B2 的派生类(多继承) A B1 B2 C1 C2 C3 A的派生类(单继承) C3 的基类 B1 , B2 的基类 A的派生类 C1 , C2 , C3 的基类 B1 的派生类类之间的继承与派生关系 B B、、派生类的定义单继承的定义格式: 单继承的定义格式: class class 派生类名派生类名: :继承方式继承方式基类名基类名{ { // //派生类新定义成员派生类新定义成员 public public : : members members ; ; private private : : members members ; ; protected protected : : members members ; ; } }; (来源:淘豆网[http://www.taodocs.com/p-72270362.html]); 多继承的定义格式多继承的定义格式 class class 派生类名派生类名:继承方式:继承方式 1 1 基类名基类名 1 1,继承方式,继承方式 2 2 基类名基类名 2 2, ,……{ { // //派生类新定义成员派生类新定义成员 public public : : members members ; ; private private : : members members ; ; protected protected : : members members ; ; } }; ; C、继承方式派生类名是新定义的一个类的名字,它是从基类中派生的,并且按指定的继承方式派生的。继承方式有三种: public :表示公有继承; private :表示私有继承,可默认声明; protected :表示保护继承。 C.1. C.1. 公有继承公有继承( ( public public ) ) 公有继承的特点是基类的公有成员和保护成员作为公有继承的特点是基类的公有成员和保护(来源:淘豆网[http://www.taodocs.com/p-72270362.html])成员作为派生类的成员时,它们都保持原有的状态,而基类的私有派生类的成员时,它们都保持原有的状态,而基类的私有成员仍然是私有的成员仍然是私有的--( --( 派生类不能访问其基类的派生类不能访问其基类的 private private 成成员,否则破坏基类的封装性;派生类能够访问基类的员,否则破坏基类的封装性;派生类能够访问基类的 public public 成员和成员和 protected protected 成员成员) ); ; 派生类的对象也是其基类的对象;反过来不成立; 派生类的对象也是其基类的对象;反过来不成立; C.2. C.2. 私有继承私有继承( ( private private ) )。。私有继承的特点是基类的公有成员和保护成员作为私有继承的特点是基类的公有成员和保护成员作为派生类的私有成员,并且不能被这个派生类的子类访问派生类的私有成员,并且不能被这个派生类的子类访问。。 C.3. C.3. 保护继承保护继承( ( protected protec(来源:淘豆网[http://www.taodocs.com/p-72270362.html])ted )。)。保护继承的特点是基类的所有公有成员和保护成员保护继承的特点是基类的所有公有成员和保护成员都成为派生类的保护成员,并且只能被它的派生类成员函都成为派生类的保护成员,并且只能被它的派生类成员函数或友元访问,基类的私有成员仍然是私有的。数或友元访问,基类的私有成员仍然是私有的。见见 P392- P392- 图图9.6 9.6 继承方式基类特性派生类特性公有继承 public public protected protected private 不可访问私有继承 public private protected private private 不可访问保护继承 public protected protected protected private 不可访问 C.4 C.4 综合综合( (1 1)、在公有继承时,派生类的对象可以访问基类中的)、在公有继承时,派生类的对象可以访问基类中的公有成员;派生类的成员函数可以访问基类中的公有成员;派生类的成员函数可以访问基类中的公有成员和保(来源:淘豆网[http://www.taodocs.com/p-72270362.html])护成员。这里,一定要区分清楚派公有成员和保护成员。这里,一定要区分清楚派生类的对象和派生类中的成员函数对基类的访问生类的对象和派生类中的成员函数对基类的访问是不同的。是不同的。( (2 2)、在私有继承时,基类的成员只能由直接派生类访)、在私有继承时,基类的成员只能由直接派生类访问,而无法再往下继承。问,而无法再往下继承。( (3 3)、对于保护继承方式,这种继承方式与私有继承方)、对于保护继承方式,这种继承方式与私有继承方式的情况相同。两者的区别仅在于对派生类的成式的情况相同。两者的区别仅在于对派生类的成员而言,对基类成员有不同的可访问性。员而言,对基类成员有不同的可访问性。( (4 4)、对于基类中的私有成员,只能被基类中的成员函)、对于基类中的私有成员,只能被基类中的成员函数和友元函数所访问,不能被其他的函数访问。数和友元函数所访问,不能被其他的函数访问 内容来自淘豆网www.taodocs.com转载请标明出处.