天天看點

問題四:C++中inline是幹嘛用的

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;

}

繼續閱讀