次の方法で共有


インライン クラス メンバー関数

クラス宣言の本体で定義される関数はインライン関数です。

使用例

次のクラス宣言でAccount のコンストラクターはインライン関数です。メンバー関数 GetBalanceDeposit と Withdraw は インライン として指定されていませんがインライン関数として実装できます。

// Inline_Member_Functions.cpp
class Account
{
public:
    Account(double initial_balance) { balance = initial_balance; }
    double GetBalance();
    double Deposit( double Amount );
    double Withdraw( double Amount );
private:
    double balance;
};

inline double Account::GetBalance()
{
    return balance;
}

inline double Account::Deposit( double Amount )
{
    return ( balance += Amount );
}

inline double Account::Withdraw( double Amount )
{
    return ( balance -= Amount );
}
int main()
{
}

[!メモ]

クラス宣言では関数は インライン のキーワードなしで宣言されています。 インライン のキーワードはクラス宣言で指定できます。; 結果は同じになります。

特定のインライン メンバー関数はコンパイル単位で同じ方法で宣言する必要があります。インスタンス化された関数のようにこの制約によりインライン関数が実行されます。またインライン関数の 1 ビットのシグネチャが必要です。

この関数の定義を インライン の指定子がない場合外部リンケージへのクラスのメンバー関数の既定値です。前の例ではこれらの関数を明示的に インライン の指定子で宣言する必要がないことを示します ; 関数定義の インライン を使用するとインライン関数であるようにします。ただしこの関数の呼び出しの後に インライン として再関数に無効です。

参照

関連項目

インライン、 __inline、 __forceinline