c++课件继承和派生概要1.ppt

c课件继承和派生概要1

第13章 继承和派生 主要内容: 13.1 单继承和派生 13.2 继承中的构造函数与析构函数 13.3 多继承 继承是面向对象程序设计的基本特征之一,是从已有的类基础上建立新类。 继承性是面向对象程序设计支持代码重用的重要机制。 面向对象程序设计的继承机制提供了无限重复利用程序资源的一种途径。通过C++语言中的继承机制,一个新类既可以共享另一个类的操作和数据,也可以在新类中定义已有类中没有的成员,这样就能大大的节省程序开发的时间和资源。 继承是类之间定义的一种重要关系,称已存在的用来派生新类的类为基类,又称为父类。由已存在的类派生出的新类称为派生类,又称为子类。 派生类可以具有基类的特性,共享基类的成员函数,使用基类的数据成员,还可以定义自己的新特性,定义自己的数据成员和成员函数。 继承关系的特点: (1) 一个派生类可以有一个或多个基类 只有一个基类时,称为单继承;有多个基类时为多继承。 (2)继承关系可以是多级的 即可以有类Y继承类X和类Z继承类Y同时存在。 (3)不允许继承循环 不能有类Y继承类X、类Z继承类Y和类X继承类Z同时存在。 13.1 单继承 一、单继承和派生 单继承和派生是除第一个基类外,每个类只有一个父类。 1、单继承和派生的语法格式: class 派生类名:派生方式 基类名 { public: 派生类增加的公有成员函数和数据成员; protected: 派生类增加的保护成员函数和数据成员; private: 派生类增加的私有成员函数和数据成员; }; 其中继承方式有三种:public、protected和private,不同的继承方式,派生类从基类继承来的成分及这些成分在派生类中具有的特性是不同的: 1)无论哪种继承方式,派生类永远不能继承基类的private部分的函数和数据; 2)继承方式为public时,派生类继承了基类的public和protected部分的函数和数据,它们在派生类中仍然是public和protected成分; 3)继承方式是protected是,派生类继承了基类的public和protected部分的函数和数据,它们在派生类中都成为protected成分; 4)继承方式是private时,派生类继承了基类的public和protected部分的函数和数据,它们在派生类中都成为private成分。 5)以当前派生类为基类去派生新的派生类,仍然按上面的规则进行。 【例题13.1】单继承和派生的公有继承(这里没有定义构造函数,后面会专门讲解继承关系中的构造函数) class Rectangle {//定义长方形类 public: void setLW(int l,int w); void putLW(); int area(); protected: int length,width; }; int main() { Rectangle r1; r1.setLW(5,7); r1.putLW(); coutArea of retangle is : r1.area()endl; Cubiod c1; c1.setHLW(8,5,7); coutvolume of Cubiod is: c1.volume()endl; coutsurfacearea of Cubiod is : c1.surfaceArea()endl; } 分析: Cubiod类有三个数据成员,其中length和width是继承Retangle类,height是Cubiod类自定义的成员,三个数据成员都为Cudiod类的protected成员。Cubiod类有六个public成员函数,其中setLW(int l,int w)、putLW()、area()是继承了Retangle类的,setHLW(int h,int l,int w)、volume()、surfaceArea()是Cubiod类自定义的成员函数。 【例题13.2】单继承和派生的私有继承 分析: Cubiod类有三个数据成员,其中length和width是继承Retangle类,是Cubiod类的private成员,height是Cubiod类自定义的protected成员。 Cubiod类有六个成员函数,其中setLW(int l,int w)、p

文档评论(0)

1亿VIP精品文档

相关文档