当前课程知识点:C++语言程序设计进阶 >  第八章 多态性 >  导学 >  导学

返回《C++语言程序设计进阶》慕课在线视频课程列表

导学在线视频

下一节:运算符重载的规则

返回《C++语言程序设计进阶》慕课在线视频列表

导学课程教案、知识点、字幕

大家好

欢迎继续学习C++

语言程序设计

这一章我们来学习多态性

那么多态性呢

实际上是一个

挺生僻的一个术语

所以同学们是确实觉得很好奇

那么多态性是个什么

到底什么是多态性呢

是啊

在日常生活中

我们很少用到多态这个词

在计算机编程领域呢

多态

顾名思义就是操作接口

具有表现多种不同形态的能力

在不同的环境下

对不同的对象

具有不同的处理方式

很奇妙是吧

那多态到底是怎么实现的呢

多态呢

实际上是通过绑定来实现的

所谓绑定呢

就是将一个标志符名称

与一段函数代码结合起来

比如说

我们的函数调用表达式

跟函数体结合

这就是一种绑定

绑定呢

按照它的实现的时机呢

分成编译时的绑定

和运行时的绑定

编译时的绑定呢

也叫早绑定

那么也就是在编译阶段

编译器就把这个绑定完成了

那么运行时的绑定呢

是等到运行的时候

才将这个标志符

和相应的函数代码结合起来

那么叫运行时的绑定

或者叫晚绑定

那在C++中呢

实际上我们学过的函数重载

实际上也是一种多态性

它是静态多态性的一种体现

也就是函数重载

是通过早绑定

或者是编译时的绑定来完成的

其实呢

运算符重载也是一种多态性

我们知道

这个系统预定义好的这些运算符

它都可以适用于不同的数据类型

比如说加法可以作整数的加法

可以作浮点数的加法

那么实际上就是说

已经将这个运算符

为不同的数据类型

做过重载了

那么同学们呢就特别关心

我们自定义的类型

能不能也用这些系统

预定义好的加减乘除运算符呢

比如说我们要定义一个复数

能不能用它去做加法呢

那么这个是同学们

特别关心的问题

也是挺有意思的一个问题

等大家学完了这一章

就会说当然可以了

和函数重载的原理是一样的

我们可以通过定义

操作符函数

来为自己定义的类

来重载运算符

在这一章里头

大家将会看到

自己定义的复数类

能够通过+和-

来进行加减运算

在这一章里

我们还能看到

大家非常熟悉的clock类

可以通过前置和后置++

来实现自增1秒

更神奇的是

在这一章我们还将看到

通过cout和插入运算符

能够把自定义的整个类的对象

都输出出来

这一切都是通过重载

运算符来实现的

同学们其实还问过我一个问题

就是在第七章里

大家没能实现成功的那个

通用的显示函数

大家一直觉得非常的奇怪

为什么呢

怎么办呢

为什么通过基类的指针

明明已经指向了派生类的对象

可是在执行的过程中

却不能够自动找到

派生类中对应的函数呢

那么确实这是一个悬念

这一章我们要给大家来

揭开这个悬念

那么我们如何能够让程序

在运行过程中

通过这个指针所指向的实际对象

去找到这个对象的功能函数呢

实际上呢

这个就要用到

C++的动态绑定

也就是运行时的绑定

说起多态性 绑定

大家可能觉得这些术语挺悬的

其实特别简单

只要加一个

virtual关键字就可以了

后面呢

大家会看到我们怎么去改编

第七章那个没成功的例题

就加一个virtual关键字

就这么简单

好 那么这一章呢

将由我给大家介绍

多态性的基本概念和语法

以及验证性的例题

由李超老师

为大家带来实验指导

还有有趣的综合实例

在本章的实验中呢

我们将会看到

我们熟悉的point类

能够通过++和--

来实现位置的移动

我们还会看到

我们用基类 车类的指针

来指向自行车 摩托车

还有小汽车

来实现不同的开开和停停

在我们的综合实例中

大家很关心的

那个银行的银行帐户的例子

我们就会觉得有些地方

代码很重复

有些罗嗦

那么在这一章里

郑老师给大家讲的virtual

这样一个利器将会帮到我们

我们将会virtual

来实现统一的用基类

来对不同的帐号和操作

进行灵活地处理

并且我们还会对日期这个类

进行减法运算符的重载

使得我们的代码编写

更加地简洁 更加地直观

好 听了我们的介绍呢

希望大家能有兴趣

跟我们一起来探索

多态性的奥秘

大家一定要多多动手实践

C++语言程序设计进阶课程列表:

第七章 继承与派生

-导学

--导学

-继承的基本概念和语法

--继承的基本概念和语法

-第七章 继承与派生--继承的基本概念和语法习题

-继承方式

--继承方式简介及公有继承

--私有继承和保护继承

-第七章 继承与派生--继承方式

-基类与派生类类型转换

--基类与派生类类型转换

-第七章 继承与派生--基类与派生类类型转换

-派生类的构造和析构

--派生类的构造函数

--派生类的构造函数举例

--派生类的复制构造函数

--派生类的析构函数

--第七章 继承与派生--派生类的构造和析构

-派生类成员的标识与访问

--访问从基类继承的成员

--虚基类

-第七章 继承与派生--派生类成员的标识与访问

-小结

--小结

-综合实例

--第七章综合实例

-实验七

--实验七

-第七章讲义

第八章 多态性

-导学

--导学

-第八章 多态性--导学

-运算符重载

--运算符重载的规则

--双目运算符重载为成员函数

--单目运算符重载为成员函数

--运算符重载为非成员函数

-第八章 多态性--运算符重载

-虚函数

--虚函数

--虚析构函数

--虚表与动态绑定

-第八章 多态性--虚函数

-抽象类

--抽象类

--第八章 多态性--抽象类

-override与final

--override与final

-第八章 多态性--override与final

-小结

--第八章小结

-综合实例

--第八章综合实例

-实验八

--实验八

- 第八章讲义

第九章 模板与群体数据

-导学

--导学

-模板

--函数模板

--类模板

-第九章 模板与群体数据--模板

-线性群体

--线性群体的概念

-第九章 模板与群体数据--线性群体

-数组

--数组类模板

--例9-4数组类应用举例

-链表

--链表的概念与结点类模板

--链表类模板

-第九章 模板与群体数据--链表

-栈

--栈类模板

--栈类模板课后习题

--例9-9 栈的应用

--例9-9 栈的应用课后习题

-队列

--队列类模板

-第九章 模板与群体数据--队列

-排序

--排序概述

--插入排序

--选择排序

--交换排序

-第九章 模板与群体数据--排序

-查找

--查找

--查找课后习题

-小结

--小结

-综合实例

--综合实例

-实验九

--实验九

- 第九章讲义

第十章 泛型程序设计与C++标准模板库

-导学

--导学

-泛型程序设计及STL的结构

--泛型程序设计的基本概念

--STL简介

-第十章 泛型程序设计与C++标准模板库--泛型程序设计及STL的结构

-迭代器

--迭代器

-第十章 泛型程序设计与C++标准模板库--迭代器

-容器的基本功能与分类

--容器的基本功能与分类

-第十章 泛型程序设计与C++标准模板库--容器的基本功能与分类

-顺序容器

--顺序容器的基本功能

--顺序容器的特征

--顺序容器的插入迭代器与适配器

--第十章 泛型程序设计与C++标准模板库--顺序容器

-关联容器

--关联容器分类和基本功能

--集合

--映射

--多重集合和多重映射

-第十章 泛型程序设计与C++标准模板库--关联容器

-函数对象

--函数对象

--函数适配器

-算法

--算法

-小结

--第十章小结

-综合实例

--综合实例

-实验十

--实验十

- 第十章讲义

第十一章 流类库与输入/输出

-导学

--导学

-I/O流的概念及流类库结构

--I/O流的概念及流类库结构

-第十一章 流类库与输入/输出--I/O流的概念及流类库结构

-输出流

--输出流概述

--向文本文件输出

--向二进制文件输出

--向字符串输出

-第十一章 流类库与输入/输出--输出流

-输入流

--输入流概述

--输入流应用举例

--从字符串输入

-第十一章 流类库与输入/输出--输入流

-输入/输出流

--输入/输出流

-第十一章 流类库与输入/输出--输入/输出流

-小结

--小结

-综合实例

--综合实例

-实验十一

--实验十一

- 第十一章讲义

第十二章 异常处理

-导学

--第12章导学

-异常处理的思想与程序实现

--异常处理的思想与程序实现

-第十二章 异常处理--异常处理的思想与程序实现

-异常处理中的构造与析构

--异常处理中的构造与析构

-第十二章 异常处理--异常处理中的构造与析构

-标准程序库异常处理

--标准程序库异常处理

-第十二章 异常处理--标准程序库异常处理

-小结

--第12章小结

-综合实例

--综合实例

-实验十二

--实验十二

- 第十二章讲义

导学笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。