何時使用內嵌函式
內嵌函式用於小型功能時最為理想,例如存取私用資料成員。 這些一行或兩行的「存取子」函式主要用途是傳回有關物件的狀態資訊,而較短的函式容易受到函式呼叫的額外負荷影響。 比例上來說,較長的函式在呼叫/傳回序列中所花的時間較短,因此內嵌時的優勢較少。
範例
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 通常可在以下方面省去額外負荷:
函式呼叫 (包括參數傳遞以及將物件的位址放置在堆疊上)
保留呼叫端的堆疊框架
新堆疊框架設定
傳回值通訊
舊堆疊框架還原
傳回