北方民族大学程序设计语言课件第八章 多态与虚函数.pptVIP

  • 0
  • 0
  • 约1.3万字
  • 约 50页
  • 2019-05-06 发布于广东
  • 举报

北方民族大学程序设计语言课件第八章 多态与虚函数.ppt

教师(Teacher类) 属性: 编号、姓名 级别、工资 行为: 计算工资 设置级别 显示信息 教学人员(NorProf类) 属性: (基类属性) 课时数、课时分 行为: 计算工资 设置级别 显示信息 科研人员(ResProf类) 属性: (基类属性) 经费数、提成比例 行为: 计算工资 设置级别 显示信息 责任教授(RespProf类) 属性: (基类属性) 固定津贴 行为: 计算工资 设置级别 显示信息 特聘教授(SpecProf类) 属性: (基类属性) 固定津贴 行为: 计算工资 设置级别 显示信息 工资 = 基本工资+课时费 工资 = 基本工资+科研提成 工资 = 基本工资+固定津贴+课时费 工资 = 基本工资+固定津贴+课时费+科研提成 (纯)虚函数 Teacher类的属性包括: 编号 姓名 级别 月工资 教工总数(静态变量) Teacher类的成员函数包括: 构造函数 析构函数(应为虚函数) 设置级别 计算工资(应为虚函数) 显示教工基本信息(应为虚函数) ? 从Teacher类可以派生教学人员类(NorProf)和研究人员类(ResProf): NorProf类从Teacher类派生类,其属性还包括: 每月授课课时数 每课时补助 NorProf类的成员函数包括: 构造函数 设置级别 计算工资(工资包括基本工资+课时补助) 显示教工基本信息 ResProf类从Teacher类派生,其属性还包括: 每月承担的科研经费总数 提成比例 ResProf类的成员函数包括: 构造函数 设置级别 计算工资(工资包括基本工资+科研经费提成) 显示教工基本信息 特聘教授SpecProf类,该类从教学人员类NorProf和研究人员类 ResProf派生 SpecProf类的属性还包括: 每月固定津贴 SpecProf类的成员函数包括: 构造函数 设置级别 计算工资(基本工资+津贴+课时补助+科研提成) 显示教工基本信息 ? 责任教授RespProf类,该类从教学人员类NorProf派生 RespProf类的属性还包括: 每月固定津贴 RespProf类的成员函数包括: 构造函数 设置级别 计算工资(基本工资+津贴+课时补助) 显示教工基本信息 * 8.1 多态性概述 8.2 虚函数 8.3 抽象类 8.4 虚析构函数 8.5 综合实例 第 8章 多态与虚函数 一种语言若不支持多态,则不能称之为面向对象的程序设计语言。本章要讨论的多态性与前面我们介绍的继承、封装等一样,都是面向对象程序设计语言中的重要特征。多态性与继承是密不可分的,本章所讲的多态性指在继承类中与基类同名、同参数、同类型函数的不同行为。 一般来说,C++语言支持两种不同类型的多态:编译时多态和运行时多 态。本章讨论的内容主要集中在运行时多态及其实现。 多态就是指不同的对象接受到相同的消息时产生不同的响应动作,即对应 相同的函数名,却执行了不同的函数体(当然,这些函数体还是要事先定义好,以便调用)。 通常把程序标示符与和一个存储地址相联系的过程,称为联编(binding,又译为绑定)。 【 8.1 多态性概述】 静态联编:指这种联编在编译阶段完成的,由于联编过 程是在程序运行前完成的,所以又称为早 期联编。静态联编能够实现编译时多态。 动态联编:指这种联编要在程序运行时动态进行,所以 又称为晚期联编。动态联编可以实现运行时 多态。 要实现静态联编,在编译阶段就必须确定标示符(如函数名)和代码之间的对应关系。 重载多态:函数重载。 强制转换多态:不同类型的数据类型进行 混合运算时要进行的强制 类型转换。 包含多态:指在基类及其派生类族中同名 函数的不同函数实现,及其在 运行时的不同响应。 参数多态:在后面章节中进行探讨。 编译时多态和运行时多态的严格划分 都是通用多态 都是专用多态 【 8.1 多态性概述】 支持两种编译方式 【例8-1】通过基类指针访问派生类对象 #include iostream.h ? class Base//声明基类Base { private: double baseTest; public: Base(double initial=0.0){baseTest=initial;} ~Base(){} void setBase(double val){baseTest=val;} double getBase(){return baseTest;} void display();//用于显示基类中的私有数据成员

文档评论(0)

1亿VIP精品文档

相关文档