C及C++程序设计 第3版 教学课件 张富 第17章-类的继承.ppt

C及C++程序设计 第3版 教学课件 张富 第17章-类的继承.ppt

ID:50320001

大小:242.50 KB

页数:46页

时间:2020-03-08

C及C++程序设计 第3版 教学课件 张富 第17章-类的继承.ppt_第1页
C及C++程序设计 第3版 教学课件 张富 第17章-类的继承.ppt_第2页
C及C++程序设计 第3版 教学课件 张富 第17章-类的继承.ppt_第3页
C及C++程序设计 第3版 教学课件 张富 第17章-类的继承.ppt_第4页
C及C++程序设计 第3版 教学课件 张富 第17章-类的继承.ppt_第5页
资源描述:

《C及C++程序设计 第3版 教学课件 张富 第17章-类的继承.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第17章类的继承面向对象的程序设计方法提供了这样一种机制,即一个类可以从另一个类获得部分或全部属性。把这种机制称为继承(inheritance)。前者称为子类(childclass)或派生类(derivedclass),后者称为父类(parentclass)或基类(baseclass)。继承17.1继承机制中的初始化17.2多重继承17.3虚基类17.4小结17.517.1继承17.1.1继承与派生类通过继承产生的新类就叫派生类或子类。被继承的类就叫基类或父类。类的继承与派生概念反映了客观世界中事物一般与特殊的关系,上下的层次关系,抽象与具体的关系。基类是派生类

2、的抽象描述,派生类是基类的特例。从编程技术的角度看,继承机制提供了代码重用的手段。一旦声明为派生类,就可以直接使用(访问)基类的公有和保护性质的数据成员与成员函数。一个派生类既可以从一个基类派生,也可以从多个基类派生。从一个基类派生叫做单继承,从多个基类派生叫做多重继承。本节将介绍单继承。从已有的类(基类)派生出一个新类(派生类)的定义格式是:class派生类名:继承方式基类名{private:派生类新成员protected:派生类新成员public:派生类新成员};继承方式用于规定基类成员在派生类中的访问权限,因此继承方式又称为访问控制或访问方式。继承方式可使

3、用关键字public或private说明。访问控制使用关键字public说明时,称为公有继承或公有派生。访问控制使用关键字private说明时,称为私有继承或私有派生。如果继承方式说明被省略,则隐含为private,即私有继承。引入继承与派生的概念后,在类的成员中,出现了一种新的类成员:protected成员,称为保护成员。我们知道,在类中被指定为public的成员,能被程序的其他部分访问。被指定为private的成员,只能被该类的成函数或友元函数访问。而被指定为protected的成员,也是只能被该类的成员函数或友元函数访问(相当于private成员),但在继

4、承方面有所不同。派生类也是不能访问基类的私有成员。但是,可以访问基类的protected成员。所以,在基类说明为保护的成员,可继承为派生类的成员。无论是公有派生还是私有派生,基类的私有成员在派生类都是不能访问的。继承方式只是影响基类的公有成员和保护成员。下面分别讨论公有派生和私有派生。17.1.2公有派生公有派生也称为公有继承。在公有派生的情况下,派生类可以访问基类中的公有和保护成员,不能访问基类的私有成员。17.1.3私有派生当派生类采用私有继承方式(关键字为private)时,即为私有派生。这时,基类的所有public成员和protected成员被继承为派生

5、类的private成员。派生类的成员可以把它们作为自己私有成员来访问。在派生类之外无法通过派生类的对象访问它们。在基类被说明为private的成员,派生类的成员不能访问它们。也就是说,派生类不能继承基类的private成员。经过私有继承后,基类的公有成员和保护成员都成为派生类的private成员。17.2继承机制中的初始化基类的构造函数和析构函数是不能继承的。如果对从基类派生来的成员初始化,还必须由基类的构造函数来完成。派生类的构造函数,一方面负责自己成员的初始化,另一方面还要负责调用基类的构造函数,向基类构造函数传送为初始化所必要的参数。基类和派生类构造函数执

6、行的顺序是,系统首先调用基类的构造函数,然后,调用用派生类的构造函数。系统执行析构函数的次序正好相反。17.2.1不带参数的基类构造函数如果在基类中没有定义构造函数,系统将调用基类的默认的构造函数。我们看到,在执行派生类的构造函数前,先要执行基类的构造函数,然后,执行派生类的构造函数。析构函数执行的顺序则相反。17.2.2带参数的基类构造函数为把参数传递给基类,就要在派生类构造函数后面,对这些参数加以说明。派生类构造函数定义的一般形式为:派生类名::派生类构造函数名(参数表):基类构造函数名(参数表){......}这里要注意用冒号“:”把派生类构造函数同基类构

7、造函数的参数表分隔开。其作用是将派生类构造函数的参数,传递给基类相应的参数。这里,两个构造函数的参数存在着对应的关系。派生类构造函数的参数表中含有参数的数据类型和参数名,并且必须包括基类构造函数的参数。在基类构造函数的参数表中则只有参数名,不要参数的数据类型。17.3多重继承17.3.1多重继承的继承机制所谓多重继承就是一个类继承多个基类的属性。例如,类C以private方式继承类A,同时又以public方式继承类B,如图17-2所示。图17-2简单多重继承示意图定义多重继承的派生类的一般形式为:class派生类名:继承方式基类名1,继承方式基类名2,…,继承方

8、式基类名n{……};多重

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

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

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