inline関数

http://www.geocities.jp/ky_webid/cpp/language/021.html

これは第10章のときにも少し言及がありましたね。

inlineとはつまりマクロ展開のようなものです。

インライン化された関数は呼び出された場所に展開されます。

ただ色々と条件があるようで、あまりに長い処理の関数や仮想関数などはinline指定していてもインライン化されないことが多いようです。

とりあえずinlineの書き方を見てみましょう。

class CSample {
public:
    int m_num;
    int GetNum ();
};

inline int CSample::GetNum() {
    return m_num;
}

上記のように関数を定義する際に、inlineをつければインライン化されます。

また、クラス宣言内で関数の定義をすればそれは常にinlineが適用されているように振舞われます。

class CSample {
public:
    int m_num;
    int GetNum () {
        return m_num;
    }
};

上記のGetNum関数はインライン化されます。