1.inline
用于把函数指定为内联函数,且该关键字需要与函数定义放在一起,与函数声明放在一起没有效果。
2.内联函数一般只适用于比较精简的小函数,实际上内联函数是通过牺牲空间去换取时间上的效率,如果函数过于庞大会造成大量空间的浪费,所以需要权衡空间和时间上的平衡。内联函数最重要的使用地方是用于类的存取函数。
3.内联函数的使用方法
(1)在类中定义的函数不需要加inline修饰,编译器会把它自动化为内联函数
class Object
{
Object();
int GetAge() //内联函数
{
return m_age;
}
private:
int m_age;
};
(2)在类外定义需要增加inline修饰
class Object
{
Object();
int GetAge();
private:
int m_age;
};
inline int GetAge() //内联函数
{
return m_age;
}
4.注意事项
(1)inline对于编译器只是一种建议,编译器可以忽略这个建议。例如如果inline修饰的函数过于庞大,编译器往往会忽略这个inline,把这个函数当成普通函数来处理。
(2)使用inline时尽量把修饰的对象定义在头文件中,以确保编译器能“看到”。如果考虑到编程习惯还是想把函数定义放到源文件中也可以这么实现。
//Object.h
#pragma once
void SetName();
//Object.cpp
inline void SetName()
{
}