1/57
文档分类:IT计算机

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


下载后只包含 1 个 PPT 格式的文档,里面的视频和音频不保证可以播放,查看文件列表

特别说明:文档预览什么样,下载就是什么样。

下载所得到的文件列表
第5章--继承与派生.ppt
文档介绍:
第5章 继承与派生
5.1 类的继承与派生
5.2 类的继承方式
5.3 派生类的构造过程和析构过程
5.4 继承

5.1 类的继承与派生
5.1.1 继承与派生的基本概念
在原有类的基础上派生出新的类,新类继承原有类的属性和方法,称原有的类为基类,新类称为派生类。
人类:                    姓名、性别、年龄、身高、体重
教师类:                姓名、性别、年龄、身高、体重、专业、职称
管理人员类:         姓名、性别、年龄、身高、体重、职务
教师管理人员类: 姓名、性别、年龄、身高、体重、专业、职称、职务
学生类:                姓名、性别、年龄、身高、体重、学号、班级、专业

人类
教师类
学生类
管理人员类
教师管理人员类
多继承:派生类
有多个基类
单继承:派生类
只有一个基类
直接基类
间接基类

5.1.2 派生类的声明
单继承派生类的声明语法为:
class 派生类名 : 继承方式  基类名
{
       派生类新增成员的声明;
}
继承方式有三种(private,protected,public),在下一节中详细介绍。

例5.1 定义一个位置坐标类,属性有x坐标和y坐标,成员函数包括构造函数、获取x坐标的函数、获取y坐标的函数和移动位置到新的坐标点函数。然后定义派生类点类,除了继承基类(位置类)的成员外,又增加了新的数据成员颜色、获取颜色值的成员函数和显示数据成员值的函数。

5.2 类的继承方式
类成员的访问权限:
私有成员(private):可以被类自身的成员和友元访问,但不能被包括派生类在内的其他任何类和任何普通函数访问
公有成员(public):可以被任何普通函数和任何类的成员函数访问
保护成员(protected):可以被类自身的成员和友元访问外,还可以被派生类的成员函数访问,但不能被任何非友元的普通函数访问

类的三种继承方式:
公有继承(public):
保护继承(protected):
私有继承(private):

5.2 类的继承方式
5.2.1 公有继承
公有继承的特点:
(1) 基类的私有成员不能被派生类的函数成员访问
(2) 基类的公有成员和保护成员在派生类中的访问权限不变

分析例5.1
基类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了
内容来自淘豆网www.taodocs.com转载请标明出处.