文档详情

第5章 继承和派生类.ppt

发布:2017-07-08约7.29千字共50页下载文档
文本预览下载声明
5.6 多重继承 5.6.1 声明多重继承的方法    class D : public A, private B, protected C, … { 类D新增加的成员 } 5.6.2 多重继承派生类的构造函数   派生类构造函数名(总参数表) : 基类1构造函数(参数表), 基类2构造函数(参数表), 基类3构造函数(参数表) , …{ 派生类中新增数据成员初始化语句 }   例5.8 声明一个教师类和一个学生类,用多重继承的方式声明一个研究生派生类。教师类中包括数据成员name、age、title。学生类中包括数据成员name1、sex和score。在定义派生类对象时给出初始化数据并输出。 5.6.3 多重继承引起的二义性问题   (1) 两个基类有同名成员   (2) 两个基类和派生类三者都有同名成员   (3) 如果类A和类B是从同一个基类派生的 5.6.4 虚基类   1、虚基类的作用   class 派生类名 : virtual 继承方式 基类名   2、虚基类的初始化   如果在虚基类中定义了带参数的构造函数,而且没有定义默认构造函数,则在其所有派生类中,通过构造函数的初始化表对虚基类进行初始化。   3、虚基类的简单应用举例   例5.9 在例5.8的基础上,在Teacher类和Student类之上增加一个共同的基类Person,如下图所示。作为人员的一些基本数据都放在person中,在Teacher类和Student类中再增加一些必要的数据。 * C++程序设计 主讲:王新祥 第5章 继承和派生类 5.1 继承与派生的概念 5.2 派生类的声明方式 5.3 派生类的构成 5.4 派生类成员的访问属性 5.5 派生类的构造函数和析构函数 5.6 多重继承 5.7 基类与派生类的转换 5.8 继承与组合 5.9 继承在软件开发中的重要意义   继承性是面向对象程序设计中最重要的机制。这种机制提供了无限重复利用程序资源的一种途径。通过C++语言中的继承机制,可以扩充和完善旧的程序以适应新的需求。这样不仅可以节省程序开发的时间和资源,并且为将来的程序增添了新的资源。 5.1 继承与派生的概念   一个派生类只从一个基类派生的称为单继承。一个派生类从多个基类派生的则称为多继承。   派生类是基类的具体化,而基类则是派生类的抽象。   请看下面的图示。 5.2 派生类的声明方式 class 派生类名 : [继承方式] 基类名 { 派生类新增加的成员 }; class Student { int num; char name[30]; char sex; public: void display( ) //对成员函数display的定义 { coutnum: num endl; coutname: nameendl; coutsex: sexendl; } }; class Studend1 { int num; //此行原来己有 char name[20]; //此行原来己有 char sex; //此行原来己有 int age; char addr[20]; public: void display( ) //此行原来己有 { coutnum: numendl; //此行原来己有 coutname: nameendl; //此行原来己有 coutsex: sexendl; //此行原来己有 coutage: ageendl; coutaddress: addrendl; } }; 利用原来定义的类Student作为基础,再加上新的内容即可,以减少重复的工作量。 C++提供的继承机制就是为了解决这个问题的。 在C++中,所谓“继承”就是在一个已存在的类的基础上建立一个新的类。已存在的类称为“基类(base class)”或“父类(father class)”。新建立的类称为“派生类(derived class)”或“子类(son class)”。 class Student1 : public Student //声明基类是Student { int age; //新增加的数据成员
显示全部
相似文档