Udostępnij za pośrednictwem


Funkcje składowe klasy wbudowane

Funkcja zdefiniowana w treści deklaracji klasy jest funkcji śródwierszowej.

Przykład

W następującej deklaracji klasy Account Konstruktor jest funkcji śródwierszowej.Funkcje składowe GetBalance, Deposit, i Withdraw nie są określone jako inline , ale może być wykonany jako wbudowane funkcje.

// 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 inline słowa kluczowego.Inline słowa kluczowego można określić w deklaracji klasy; wynik jest taka sama.

Funkcji składowej danym wierszu musi być zadeklarowany ten sam sposób, w każdej jednostce zestawiania.To ograniczenie powoduje, że funkcje wbudowane zachowują się tak, jakby były one funkcje skonkretyzowanym.Dodatkowo musi być dokładnie jedna definicja funkcji śródwierszowej.

Funkcji składowej klasy domyślne, aby połączenie zewnętrznych, chyba że zawiera definicję funkcji inline specyfikatora.Powyższy przykład pokazuje, że te funkcje nie musi jawnie deklarowane z inline specyfikatora; za pomocą inline w funkcji definicji powoduje jej do funkcji śródwierszowej.Jednakże jest niedozwolony redeclare funkcji jako inline po wywołaniu tej funkcji.

Zobacz też

Informacje

wbudowane, __inline, __forceinline