內嵌類別成員函式
在類別宣告的主體中定義的函式是內嵌函式。
範例
在下列類別宣告中, Account建構函式是內嵌函式。成員函式GetBalance, Deposit,以及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()
{
}
![]() |
---|
函式宣告但未在類別宣告中, 內嵌關鍵字。內嵌可以指定關鍵字在類別宣告。 結果是一樣的。 |
指定的內嵌成員函式必須宣告為相同的方式,在每個編譯單位中。這個條件約束會造成行為如同它們是具現化的函式的內嵌函式。此外,必須剛好一個定義的內嵌函式。
類別成員函式會預設為外部連結,除非該函式的定義包含內嵌規範。前面的範例會顯示這些函式必須不能明確地宣告與內嵌規範。 使用內嵌函式中定義會使它成為內嵌函式。不過,不能重新宣告一個函式內嵌在呼叫此函式。