1 / 57
文档名称:

第5章--继承与派生.ppt

格式:ppt   大小:645KB   页数:57页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

第5章--继承与派生.ppt

上传人:iris028 2021/1/20 文件大小:645 KB

下载得到文件列表

第5章--继承与派生.ppt

文档介绍

文档介绍:第5章 继承与派生
类的继承与派生
类的继承方式
派生类的构造过程和析构过程
继承
类的继承与派生
继承与派生的基本概念
在原有类的基础上派生出新的类,新类继承原有类的属性和方法,称原有的类为基类,新类称为派生类。
人类:                    姓名、性别、年龄、身高、体重
教师类:                姓名、性别、年龄、身高、体重、专业、职称
管理人员类:         姓名、性别、年龄、身高、体重、职务
教师管理人员类: 姓名、性别、年龄、身高、体重、专业、职称、职务
学生类:                姓名、性别、年龄、身高、体重、学号、班级、专业
人类
教师类
学生类
管理人员类
教师管理人员类
多继承:派生类
有多个基类
单继承:派生类
只有一个基类
直接基类
间接基类
派生类的声明
单继承派生类的声明语法为:
class 派生类名 : 继承方式  基类名
{
       派生类新增成员的声明;
}
继承方式有三种(private,protected,public),在下一节中详细介绍。
定义一个位置坐标类,属性有x坐标和y坐标,成员函数包括构造函数、获取x坐标的函数、获取y坐标的函数和移动位置到新的坐标点函数。然后定义派生类点类,除了继承基类(位置类)的成员外,又增加了新的数据成员颜色、获取颜色值的成员函数和显示数据成员值的函数。
类的继承方式
类成员的访问权限:
私有成员(private):可以被类自身的成员和友元访问,但不能被包括派生类在内的其他任何类和任何普通函数访问
公有成员(public):可以被任何普通函数和任何类的成员函数访问
保护成员(protected):可以被类自身的成员和友元访问外,还可以被派生类的成员函数访问,但不能被任何非友元的普通函数访问
类的三种继承方式:
公有继承(public):
保护继承(protected):
私有继承(private):
类的继承方式
公有继承
公有继承的特点:
(1) 基类的私有成员不能被派生类的函数成员访问
(2) 基类的公有成员和保护成员在派生类中的访问权限不变

基类CLocation中的公有成员Getx()、Gety()和MoveTo(),在派生类CPoint中的访问权限仍然是公有的。
而x,y是基类CLocation的私有成员,在派生类CPoint的成员函数中不能访问。如果将CPoint类的成员函数Show()改写成下面的形式:
void CPoint::Show()
{
cout << x << "," << y << " " << Color << endl ;
}
错误信息:“不能访问CLocation类中的私有成员x,y”
若将基类CLocation中的x,y改成保护成员,即:
class CLocation
{
protected:
int x;
int y;
public:
int Getx();
int Gety();
void MoveTo(int x, int y);
CLocation(int x=0, int y=0);
};
将x,y改为保护成员后,上面的show()就可以直接访问成员x和y了