当前课程知识点:VC++面向对象与可视化程序设计(下):MFC编程基础 >  第6章 MFC基础知识 >  6-2 C++的基本知识 >  6-2-6 重载

返回《VC++面向对象与可视化程序设计(下):MFC编程基础》慕课在线视频课程列表

6-2-6 重载在线视频

6-2-6 重载

下一节:6-2-7 友元函数

返回《VC++面向对象与可视化程序设计(下):MFC编程基础》慕课在线视频列表

6-2-6 重载课程教案、知识点、字幕

我们现在开始介绍重载

重载是C++的一个重要特征

重载包括函数重载和操作符重载

所谓函数重载是指同一个函数名

可以对应着多个函数的实现

函数重载允许一个程序内声明多个名称相同的函数

这些函数可以完成不同的功能

并可以带有不同的类型

不同数目的参数及返回值

使用函数重载可以减轻用户的记忆负担

并使程序的结构简单易懂

操作符重载

对操作符的重载是将C++语言中已有的操作符赋予新的功能

但与该操作符的本来含义不冲突

使用时只需根据操作符出现的位置来判断其具体执行哪一种运算

我们主要介绍函数重载

下面我们通过例子来介绍函数重载的应用

这个例子实现的是两个不同参数类型的重载

类My_class中对方法plus进行了重载

通过重载

使得在求两个数的和时不再区分整数和浮点数之间的不同

只需要直接调用类My_class的方法plus就可以了

那我们看一下这个例子

这里定义了My_class这个类

它有两个public公共成员函数

名字都叫plus

第一个plus

它有两个参数都是int

返回值也是int

第二个plus

它有两个参数都是double

返回值也是double

大家看这里定义的两个函数都叫plus

但是它的参数类型和返回值的类型是不一样的

那我们先看第一个返回值为int的plus函数

它里面有两个参数都是整型的

它这个运行结果return的是x+y

我们再看第二个返回值为double的plus函数

它里面有两个参数都是double

这个函数的返回值是x-y

那也就是说这时候我给了一个x、一个y

它能够根据数据类型直接去找执行哪一个plus

那这里面在主函数里面

定义了My_class的对象Data

那这个Data就能够执行public定义的公共成员函数

那这样我这里Data.plus

第二行也是Data.plus

第一个plus我给的是整型数5和10

它就直接去找这个函数了

第二个给的是5.0和10.0

它就去找第二个函数

这是double的

5跟10是int的

它直接就去找int

所以这样的两个重载的成员函数

分别调用求整型数之加和

和求浮点数之加和的函数plus来对不同的参数进行运算

函数重载要求编译器能够唯一地确定调用一个函数时

应该执行哪个函数代码

确定函数实现时

要求从函数参数的个数和类型上来区分

也就是说

函数重载时

要求函数的参数个数和参数类型不同

大家看这个plus

这个函数参数的类型就是不一样的

到这个编译环境来

我们运行一下

这时候大家看到了这个结果

第一行输出的这个plus(int,int)这个地方

结果是15

因为给的是5和10

第二行是两个double double

它调用的是第二个函数

第二个函数执行的是x-y的操作

所以就是5-10

就是-5

所以根据输入的数据类型的不同

它会去找相应的函数

不仅在类的成员函数上可以实现重载

构造函数上也可以实现函数的重载

大家看这里的定义

这里定义了一个CSample这个类

然后它有private参数

定义了public的公共函数

CSample这是无参的

这里没有参数大家看到了

还有一个是Csample(int)

这是有参的

而这两个参数的名字跟CSample是一样的

所以这两个函数都是构造函数

一个有参一个没参

说明这两个构造函数实行了重载

然后定义了一个area函数

它返回的是一个i值

在这里实际上就把函数的实现直接就写在这儿了

在这里给大家再复习一下内联函数的定义

我们看CSample这个无参函数在这里面是把0赋给了i

而有参函数是把x赋成了i

因为这个i是private的

所以在这里面它这个public的函数

是可以对int i进行操作的

然后我们看依一下main函数

main函数里面定义了一个j1和j2(5)

那也就是说j1调area

而area这里是无参的

所以j1里面调area

J1里面呢这个j1呢是没有带参数的

所以调用的应该就是CSample

而j2里面带了一个参数

所以调用的是这个

因为j1、j2分别是CSample的对象

可以调这个构造函数

调的过程到底调哪一个

就看它这里有没有参数了

所以这里用的j1

j1后面没有参数

自动调用Sample

而j2后面有参数

而且是一个整型参数

自动调用Sample(int)

VC++面向对象与可视化程序设计(下):MFC编程基础课程列表:

第0章 课前讨论

-讨论实录

--0-0

第6章 MFC基础知识

-6-1 MFC概述

--6-1 MFC基础知识

-6-2 C++的基本知识

--6-2-1 类

--6-2-2 对象

--6-2-3 类的方法

--6-2-4 内联函数

--6-2-5 构造函数和析构函数

--6-2-6 重载

--6-2-7 友元函数

--6-2-8 友元类

--6-2-9 指针

--6-2-10 类的继承

--6-2-11 多态性和虚拟函数

-6-3 MFC类的组织结构及主要的类的简介

--6-3-1 MFC类的组织结构

--6-3-2 根类

--6-3-3 应用程序结构类

--6-3-4 可视对象类

--6-3-5 通用类

--6-3-6 OLE类

--6-3-7 ODBC数据库

-6-4 MFC中全局函数和全局变量

--6-4 MFC中全局函数和全局变量

第7章 Windows标准控件在可视化编程中的应用

-7-1 概述

--7-1-1

--7-1-2

-7-2 按钮控件及其应用

--128B12447816EEF99C33DC5901307461

-7-3 按钮控件及其应用

--7-3

-7-4 静态控件

--7-4

-7-5 列表框控件

--7-5-1

--7-5-2

-7-6 编辑框控件

--7-6

-7-7 组合框控件

--7-7

-7-8 对话框通用控件

--7-8-1

--7-8-2

-讲义源代码

--html

第8章 在MFC中创建应用程序的资源

-8-1&2 资源的应用以及菜单资源的使用

--8-1-1

--8-1-2

-8-3 快捷菜单的创建及其应用

--8-3

-8-4 加速键资源的创建及其使用

--8-4

-8-5 工具条资源的创建及其使用

--8-5

-8-6 字符串资源的使用

--8-6

-8-7 位图资源的创建及其使用

--8-7

-课堂示例源代码

--html

-第一次作业内容及要求

--html

--第一次作业及答题链接--作业

第9章 单文档与多文档

-9-1 概述

--9-1

-9-2 Doc/View框架的主要成员

--Video

-9-3 文档操作中的一些重要概念

--Video

-9-4 SDI编程实例

--Video

-9-5 MDI编程实例

--9-5-1

--9-5-2

-课堂示例源代码

--html

-第二次作业内容及要求

--html

--第二次作业及答题链接--作业

第10章 多媒体应用程序的设计

-10-1 利用音频函数实现多媒体程序设计

--10-1-1

--10-1-2

--10-1-3

--10-1-4

-10-2 利用Windows Media Player控件实现多媒体程序设计

--10-2

-课堂示例源代码

--html

第11章

-例11-1

--例1

-例11-2

--例11-2

-例11-3

--例11-3

-例11-4

--例11-4

-11-1 ODBC介绍与引用

--11-1

-课堂示例源代码

--html

第三次作业及答题链接

-第三次作业及答题链接

6-2-6 重载笔记与讨论

也许你还感兴趣的课程:

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