何时使用内联函数
内联函数最适用于小函数使用,例如访问私有数据成员。 这些一行或两行代码的“访问器”函数的主要用途是返回有关对象的状态信息;短函数对函数调用的开销很敏感。 较长的函数在调用/返回序列方面花费的时间可成比例地减少,而从内联的获益也会减少。
示例
可按如下所示来优化在函数调用结果中引入的 Point 类。
// when_to_use_inline_functions.cpp
class Point
{
public:
// Define "accessor" functions as
// reference types.
unsigned& x();
unsigned& y();
private:
unsigned _x;
unsigned _y;
};
inline unsigned& Point::x()
{
return _x;
}
inline unsigned& Point::y()
{
return _y;
}
int main()
{
}
假设操作坐标是此类客户端中相对常见的操作,则将两个访问器函数(前面示例中的 x 和 y)指定为“内联”通常将节省下列操作的开销:
函数调用(包括参数传递和在堆栈上放置对象地址)
保留调用者的堆栈帧
设置新的堆栈帧
返回值通信
旧堆栈帧还原
返回