理解:
一、定义
百度百科:内联函数从源代码层看,有函数的结构,而在编译后,却不具备函数的性质。内联函数不是在调用时发生控制转移,而是在编译时将函数体嵌入在每一个调用处。编译时,类似宏替换,使用函数体替换调用处的函数名。一般在代码中用inline修饰,但是能否形成内联函数,需要看编译器对该函数定义的具体处理。
二、为什么需要这个功能,没有这个功能怎么办
百度百科:内联扩展是用来消除函数调用时的时间开销。它通常用于频繁执行的函数。 一个小内存空间的函数非常受益。
编译器可以决定哪些函数内联 。 程序员很少或没有控制哪些只能是内联的,哪些不是。 给这种控制程度,作用是程序员可以选择内联的特定应用 。
三、该功能的具体应用
C++有三种方式实现内联函数:
1. 将函数的定义写在类定义的内部;
2. 在类定义内部的函数声明上用inline显式指定;
3. 在类定义体外部的函数实现上用inline显式指定;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
#include<iostream>
using
namespace
std;
class
Sample
{
public
:
void
inline01(){cout<<
"haha 01"
<< endl;}
inline
void
inline02()
const
;
};
void
Sample::inline02()
const
{
cout <<
"haha 02"
<< endl;
}
inline
void
inline03()
{
cout <<
"haha 03"
<< endl;
}
int
main(
int
argc,
char
* argv[]){
Sample s;
s.inline01();
s.inline02();
inline03();
return
0;
}
|
参考文献:
http://www.jb51.net/article/48622.htm
http://www.cnblogs.com/whyandinside/archive/2012/09/23/2698952.html