当前课程知识点:VC++面向对象与可视化程序设计(下):MFC编程基础 > 第6章 MFC基础知识 > 6-2 C++的基本知识 > 6-2-4 内联函数
返回《VC++面向对象与可视化程序设计(下):MFC编程基础》慕课在线视频课程列表
返回《VC++面向对象与可视化程序设计(下):MFC编程基础》慕课在线视频列表
内联函数是指那些定义在类体内的成员函数
也就是说该函数的函数体是放在类的里头
类体内
类的方法也可以声明和定义成内联函数
内联函数在调用时不像一般的函数那样
要转去执行被调用函数的函数体
执行完成后再转回调用函数中
执行其后语句
而是在调用函数处用内联函数体的代码来替换
这样会提高运行速度
因此内联函数主要是解决程序的运行效率问题
内联函数一定要在调用之前定义
而且内联函数无法递归调用
内联函数它有两种定义方式
第一种是当在函数的外部定义时
把关键字inline加在函数定义之前
例如下面的程序段中就定义了类angle的SetValue方法
被定义成内联函数
大家看class angle
我们定义了angle类
private这里有double value
public这个地方有SetValue
那么这个时候SetValue的定义在外面
在这个地方
前面加了一个inline
也就是说是把这个SetValue定义成内联函数
这是一种定义方法
第二种是把函数原型声明和方法的定义合并起来
放到类定义当中
下面的程序段在声明类angle的SetValue方法后
紧接着就定义它的具体实现
这个地方就是它的具体实现
它要干什么事呢
就是把接收的x的值赋给value
它干的就是这事
那我们看这么一个例子
这三个就不说了
跟前面一样道理
这里定义了一个class
这个类的名字叫做CRectangle
private成员有int型的x、y
然后在public里面定义了set_values
同时定义了一个area
类似于前面例子
在这个地方它没有这个函数实现
而我们这个例子
在这里面定义了函数的实现
所以这个就是内联函数
而这个set_values
由于在这里面没有实现的函数体
而只有两个数据类型的定义
函数的原型在这儿
那它的实现在下面定义
那定义了CRectangle
然后SetValue
这里面int类型定义两个形参
int a跟int b
把a赋给x,把b赋给y
我们在主函数main里面
定义了CRectangle的对象rect
那这些对象就拥有这些私有的成员
和公共的函数
所以在这里面它可以调用setvalues函数
给的值是5和6
也就是说把5给这个a
把6给这个b
而这个a、b分别赋给了x、y
我们调用rect.area它里面返回的值是x*y
这个前面双引号里面是原样输出
所以这样的话这个程序运行的结果实际上就是
x、y的相乘
5和6的相乘
所以它的值应该是30
所以打印出来的结果就是30
好 我们把程序切过来
我们调试运行一下
这个时候得到的结果就是30
这跟我们刚才ppt里面看到的结果是一致的
-讨论实录
--0-0
-6-1 MFC概述
-6-2 C++的基本知识
--6-2-1 类
--6-2-2 对象
--6-2-6 重载
--6-2-9 指针
-6-3 MFC类的组织结构及主要的类的简介
--6-3-2 根类
-6-4 MFC中全局函数和全局变量
-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-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-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-1 利用音频函数实现多媒体程序设计
--10-1-1
--10-1-2
--10-1-3
--10-1-4
-10-2 利用Windows Media Player控件实现多媒体程序设计
--10-2
-课堂示例源代码
--html
-例11-1
--例1
-例11-2
--例11-2
-例11-3
--例11-3
-例11-4
--例11-4
-11-1 ODBC介绍与引用
--11-1
-课堂示例源代码
--html
-第三次作业及答题链接