|
内联函数最适合用于小型函数,例如提供数据成员访问权限的函数。 短函数对函数调用的开销很敏感。 较长的函数在调用和返回序列方面花费的时间可成比例地减少,而从内联的获益也会减少。
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)指定为 inline 通常将节省下列操作的开销:
函数调用(包括参数传递和在堆栈上放置对象地址)
保留调用者的堆栈帧
设置新的堆栈帧
返回值通信
还原旧堆栈帧
返回值
|
|