iInline:若一個函數被指定為inline函數,則它将在程式中每個調用點上被内聯地展開。一般來說,内聯函數不會引入任何函數調用。是以可以提高執行效率。
注意,函數home() 、get() 、height()和width()的定義是在類體内提供的。這些函數被稱為“在類定義中定義的内聯(inline)函數”。這些函數被自動作為inline函數處理。
我們也可以通過在成員函數的傳回類型前顯式地指定關鍵字inline,在類體内将這些成
員函數聲明為inline的。如上代碼中:
inline float x() const { return e[0];}
inline const vec3& operator+()const { return *this; }
一兩行以上的成員函數最好被定義在類體之外。通常,在類體外定義的成員函數不是inline的。但是這樣的函數也可以被聲明為inline函數,可以通過顯式地在類體中出現的函數聲明上使用關鍵字inline,或者通過在類體外出現的函數定義上顯式使用關鍵字inline,或者兩者都用。如上代碼中:
inline vec3& operator+=(const vec3&v2);
inline vec3& vec3::operator+=(constvec3 &v)
{
e[0] += v.e[0];
e[1] += v.e[1];
e[2] += v.e[2];
return *this;
}