理解:
一、定义
百度百科:内联函数从源代码层看,有函数的结构,而在编译后,却不具备函数的性质。内联函数不是在调用时发生控制转移,而是在编译时将函数体嵌入在每一个调用处。编译时,类似宏替换,使用函数体替换调用处的函数名。一般在代码中用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