人民邮电出版社:《C++语言程序设计》课程教学资源(PPT课件讲稿)第10章 虚函数和多态性

第10章虚函数和多态性 10 10.2象类 10.3应折控原数 10.4多态 人民邮电出版社 POSTS tEl OM PRE 动此映
第10章 虚函数和多态性 10.1 虚 函 数 10.2 抽 象 类 10.3 虚 析 构 函 数 10.4 多 态

所谓多态,是指不同对象对相同消息 作出不同的响应。多态是通过继承 虚函数以及动态联编来实现的 人民邮电出版社 POSTS tEl OM PRE 动此映
所谓多态,是指不同对象对相同消息 作出不同的响应。多态是通过继承、 虚函数以及动态联编来实现的

10.1虛函数 10.1.1虚函数的定义 虚函数是实际上不存在,但确实影响程序 某些部分的函数。虚函数 有多态性,即派生的类有共同的函数,这 些共同的函数有着相同的函数名称和相同 的参数,但是却有各自不同的具体实现部 分 人民邮电出版社 POSTS tEl OM PRE 动此映
10.1 虚 函 数 10.1.1 虚函数的定义 虚函数是实际上不存在,但确实影响程序 某些部分的函数。虚函数 有多态性,即派生的类有共同的函数,这 些共同的函数有着相同的函数名称和相同 的参数,但是却有各自不同的具体实现部 分

虚函数的定义方法如下: virtual 定义虚函数要遵循下列规则: (1)类的静态成员函数不可以定义为虚函 数 (2)类的构造函数不可以定义为虚函数。 (3)非类的成员函数不可以定义为虚函数。 人民邮电出版社 POSTS tEl OM PRE 动此映
虚函数的定义方法如下: virtual ; 定义虚函数要遵循下列规则: (1)类的静态成员函数不可以定义为虚函 数。 (2)类的构造函数不可以定义为虚函数。 (3)非类的成员函数不可以定义为虚函数

【例10.1】假设一个程序可用来绘制不同 的形状,比如三角形、圆、矩形、椭圆等 等,并假设这些类中每个类都有一个成员 函数 drawL,通过该函数可绘制对象。分 析下列程序的输出结果 人民邮电出版社 POSTS tEl OM PRE 动此映
【例10.1】假设一个程序可用来绘制不同 的形状,比如三角形、圆、矩形、椭圆等 等,并假设这些类中每个类都有一个成员 函数draw(),通过该函数可绘制对象。分 析下列程序的输出结果

#include iostream. h' class person public void printInfoO 基类中的函数 cout<<"Personn"; 人民邮电出版社 POSTS tEl OM PRE 动此映
#include "iostream.h" class person { public: void printInfo() //基类中的函数 { cout<<"Person\n"; } };

class worker: public person pl rivate int kindofwork: public: void printInfo o 在派生类 worker 中重新定义 cout<<Worker\" 人民邮电出版社 POSTS tEl OM PRE 动此映
class worker: public person { private: int kindofwork; public: void printInfo () //在派生类worker中重新定义 { cout<<"Worker\n"; } };

class teacher: public person rivate. int subject ublic void printInfo o 在派生类 teacher中重新定义 cout<< Teacherln }; 人民邮电出版社 POSTS tEl OM PRE 动此映
class teacher: public person { private: int subject; public: void printInfo () //在派生类teacher中重新定义 { cout<<"Teacher\n"; } };

void maino worker w teacher t; person* p; p=&w; ∥w是 worker类对象 p->printInfo0; p=&t; p->printInfoo 人民邮电出版社 POSTS tEl OM PRE 动此映
void main() { worker w; teacher t; person* p; p = &w; // w是worker类对象 p->printInfo(); p = &t; p->printInfo(); }

程序的执行结果为: Person P erson 人民邮电出版社 POSTS tEl OM PRE 动此映
程序的执行结果为: Person Person
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 人民邮电出版社:《C++语言程序设计》课程教学资源(PPT课件讲稿)第09章 继承性.ppt
- 人民邮电出版社:《C++语言程序设计》课程教学资源(PPT课件讲稿)第08章 运算符重载.ppt
- 人民邮电出版社:《C++语言程序设计》课程教学资源(PPT课件讲稿)第07章 类与数据抽象.ppt
- 人民邮电出版社:《C++语言程序设计》课程教学资源(PPT课件讲稿)第06章 指针和引用.ppt
- 人民邮电出版社:《C++语言程序设计》课程教学资源(PPT课件讲稿)第05章 结构体和共用体.ppt
- 人民邮电出版社:《C++语言程序设计》课程教学资源(PPT课件讲稿)第04章 数组.ppt
- 人民邮电出版社:《C++语言程序设计》课程教学资源(PPT课件讲稿)第03章 函数.ppt
- 人民邮电出版社:《C++语言程序设计》课程教学资源(PPT课件讲稿)第02章 C++程序设计基础.ppt
- 人民邮电出版社:《C++语言程序设计》课程教学资源(PPT课件讲稿)第1章 C++概述.ppt
- 河南财经政法大学(河南财经学院):《分布式数据库系统及其应用》课程教学资源(PPT课件)第1章 分布式数据库系统概述(主讲:崔明义).ppt
- 河南财经政法大学(河南财经学院):《分布式数据库系统及其应用》课程教学资源(PPT课件)第9章 分布式数据库与WWW数据库和移动数据库.ppt
- 河南财经政法大学(河南财经学院):《分布式数据库系统及其应用》课程教学资源(PPT课件)第8章 分布式数据库与客户机服务器模式.ppt
- 河南财经政法大学(河南财经学院):《分布式数据库系统及其应用》课程教学资源(PPT课件)第7章 分布式数据库的安全性与目录管理.ppt
- 河南财经政法大学(河南财经学院):《分布式数据库系统及其应用》课程教学资源(PPT课件)第6章 分布式数据库中的可靠性.ppt
- 河南财经政法大学(河南财经学院):《分布式数据库系统及其应用》课程教学资源(PPT课件)第5章 分布式数据库中的并发控制.ppt
- 河南财经政法大学(河南财经学院):《分布式数据库系统及其应用》课程教学资源(PPT课件)第4章 分布式数据库中的事务管理和恢复.ppt
- 河南财经政法大学(河南财经学院):《分布式数据库系统及其应用》课程教学资源(PPT课件)第3章 分布式数据库中的查询处理和优化.ppt
- 河南财经政法大学(河南财经学院):《分布式数据库系统及其应用》课程教学资源(PPT课件)第2章 分布式数据库系统的设计.ppt
- 河南财经政法大学(河南财经学院):《分布式数据库系统及其应用》课程教学资源(PPT课件)第11章 数据仓库和数据挖掘.ppt
- 河南财经政法大学(河南财经学院):《分布式数据库系统及其应用》课程教学资源(PPT课件)第10章 分布式数据库系统的发展趋势.ppt
- 人民邮电出版社:《C++语言程序设计》课程教学资源(PPT课件讲稿)第11章 C++输入/输出流.ppt
- 人民邮电出版社:《C++语言程序设计》课程教学资源(PPT课件讲稿)第12章 文件处理.ppt
- 上海理工大学:《电子商务基础与应用》课程教学资源(PPT课件)第四版 第六章 网络交易行为.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)目录.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第一章 绪论.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第十章 群体数据的组织.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第十一章 流类库与输入/输出.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第十二章 异常处理.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第十三章 MFC库与 Windows程序开发概述.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第二章 C艹十简单程序设计.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第三章 函数.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第四章 类与对象.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第五章 C艹程序的结构.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第六章 数组指针与字 符串.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第七章 继承与派生.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第八章 多态性.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第九章 群体类.ppt
- 《汇编语言程序设计》课程教学资源(PPT课件讲稿)第一章 ntel8086/8088的基本结构.ppt
- 《汇编语言程序设计》课程教学资源(PPT课件讲稿)绪言.ppt
- 《汇编语言程序设计》课程教学资源(PPT课件讲稿)第三章 汇编语言与汇编程序.ppt