Udostępnij za pośrednictwem


Funkcje członkowskie klasy wewnętrznej

Funkcja zdefiniowana w ciele deklaracji klasy jest funkcją wbudowaną.

Przykład

W następującej deklaracji klasy, konstruktor Account jest funkcją wbudowaną.Funkcje składowe GetBalance, Deposit, i Withdraw nie są określone jako wbudowane, ale mogą zostać zaimplementowane jako funkcje wbudowane.

// 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()
{
}

[!UWAGA]

W deklaracji klasy funkcje zostały zadeklarowane bez słowa kluczowego inline.Słowo kluczowe Inline można określić w deklaracji klasy; wynik jest taki sam.

Wbudowana funkcja składowa musi być zadeklarowana w ten sam sposób w każdej jednostce kompilacji.To ograniczenie powoduje, że wbudowane funkcje zachowują się tak jak gdyby były funkcjami posiadającymi wystąpienie.Dodatkowo musi być dokładnie jedna definicja wbudowanej funkcji.

Funkcja składowa posiada domyślnie powiązania zewnętrzne chyba że definicja tej funkcji posiada specyfikator inline.Poprzedni przykład pokazuje, że te funkcje nie muszą być jawnie zadeklarowane ze specyfikatorem inline; użycie inline w definicji funkcji powoduje, że funkcja staje się funkcją wbudowaną.Jednakże, nie jest dozwolonym ponowne zadeklarowanie funkcji jako inline po wywołaniu tej funkcji.

Zobacz też

Informacje

inline, __inline, __forceinline