inline 函数
函数若定义在 class 里面,则自动成为 inline 函数。
class complex
{
public:
double imag(const complex& x); //函数声明
double real() const {return re;} //函数定义
double imag() const {return im;} //函数定义
private:
double re, im;
}
在函数定义时
,返回类型前加上关键字inline,即把该函数指定为内联。
inline double imag(const complex& x)
{
return x.imag();
}
- 如果给所以的函数加上 inline ,但这只是对编译器的建议,最后是不是变成 inlne 是由编译器决定的。
- 内联能提高函数的执行效率。以代码复制为代价,仅仅省去了函数调用的开销,从而提高函数的执行效率。每一处内联函数的调用都要复制代码,将使程序的总代码量增大,消耗更多的内存空间。因此,频繁调用且函数内部代码很少的情况下使用内联。
- 一般地,用户可以阅读函数的声明,但是看不到函数的定义。inline 关键字可以不放入函数声明中,因为用户没有必要知道,也不应该知道是否函数需要内联。