第7章继承与派生 6.1类的继承与派生 62类的继承方式 63派生类的构造过程和析构过程 64多继承
第7章 继承与派生 6.1 类的继承与派生 6.2 类的继承方式 6.3 派生类的构造过程和析构过程 6.4 多继承
第7章继承与派生 ‖6.1类的继承与派生 6.1.1继承与派生的基本概念 在原有类的基础上派生出新的类,新类继承原有类的属性和 方法,称原有的类为基类,新类称为派生类。 人类: 姓名、性别、年龄、身高、体重 教师类: 姓名、性别、年龄、身高、体重、专业、职称 管理人员类 姓名、性别、年龄、身高、体重、职务 教师管理人员类:姓名、性别、年龄、身高、体重、专业、职称、职务 学生类: 姓名、性别、年龄、身高、体重、学号、班级、专业 间接基类 人类 直接基类教师类□管理人员类学生类单继承:派生类 只有一个基类 教师管理人员类多继承:派生类 有多个基类
6.1 类的继承与派生 6.1.1 继承与派生的基本概念 在原有类的基础上派生出新的类,新类继承原有类的属性和 方法,称原有的类为基类,新类称为派生类。 第7章 继承与派生 人类: 姓名、性别、年龄、身高、体重 教师类: 姓名、性别、年龄、身高、体重、专业、职称 管理人员类: 姓名、性别、年龄、身高、体重、职务 教师管理人员类: 姓名、性别、年龄、身高、体重、专业、职称、职务 学生类: 姓名、性别、年龄、身高、体重、学号、班级、专业 人类 教师类 管理人员类 学生类 教师管理人员类 多继承:派生类 有多个基类 单继承:派生类 只有一个基类 直接基类 间接基类
第7章继承与派生 类的继承与派生 6.1.2派生类的声明 单继承派生类的声明语法为: cass派生类名:继承方式基类名 派生类新增成员的声明 继承方式有三种( private, protected, public),在下一节中 详细介绍
6.1 类的继承与派生 6.1.2 派生类的声明 单继承派生类的声明语法为: class 派生类名 : 继承方式 基类名 { 派生类新增成员的声明; } 继承方式有三种(private,protected,public),在下一节中 详细介绍。 第7章 继承与派生
第7章继承与派生 例61定义一个位置坐标类,属性有x坐标和y坐标,成员函数 包括构造函数、获取X坐标的函数、获取y坐标的函数和移动位 置到新的坐标点函数。然后定义派生类点类,除了继承基类 (位置类)的成员外,又增加了新的数据成员颜色、获取颜色 值的成员函数和显示数据成员值的函数 include <iostream. h> #include <string. h class CLocation∥位置坐标类 private int x int y; public CLocation(int X=0, int y=O) void Move To(int x, int y) int GetXo int Geto
例6.1 定义一个位置坐标类,属性有x坐标和y坐标,成员函数 包括构造函数、获取x坐标的函数、获取y坐标的函数和移动位 置到新的坐标点函数。然后定义派生类点类,除了继承基类 (位置类)的成员外,又增加了新的数据成员颜色、获取颜色 值的成员函数和显示数据成员值的函数。 #include <iostream.h> #include <string.h> class CLocation //位置坐标类 { private: int x; int y; public: CLocation(int x=0, int y=0); void MoveTo(int x, int y); int Getx(); int Gety(); }; 第7章 继承与派生
第7章继承与派生 例61(续 CLocation: CLocation(int x, int y) CLocation:X=X;∥/可以写成this->X=x CLocation:y=y;∥可以写成this->y=y; void CLocation: Move To(int x, int y) CLocation:X=x;∥可以写成this->x=x CLocation:y=y;∥可以写成this->y=y; int CLocation: Getxo 可通过域运算符(:)访问类中的 return x 成员x和y,与使用this指针有同样 作用 int CLocation Getyo return y;
例6.1 (续一) CLocation::CLocation(int x, int y) { CLocation::x = x; // 可以写成 this->x = x; CLocation::y = y; // 可以写成 this->y = y; } void CLocation::MoveTo(int x, int y) { CLocation::x = x; // 可以写成 this->x = x; CLocation::y = y; // 可以写成 this->y = y; } int CLocation::Getx() { return x; } int CLocation::Gety() { return y; } 可通过域运算符(::)访问类中的 成员x和y,与使用this指针有同样 作用 第7章 继承与派生