Vložené členské funkce třídy
Funkce definovaná v těle deklarace třídy je vloženou funkcí.
Příklad
V následující deklaraci třídy je konstruktor Account vloženou funkcí.Členské funkce GetBalance, Deposit a Withdraw nejsou zadány s klíčovým slovem inline, lze je však implementovat jako vložené.
// 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()
{
}
[!POZNÁMKA]
V deklaraci třídy byly funkce deklarovány bez klíčového slova inline.V deklaraci třídy lze klíčové slovo inline uvést, výsledek bude tentýž.
Jedna vložená členská funkce musí být deklarována ve všech jednotkách kompilace stejně.Vlivem tohoto omezení se vložené funkce chovají stejně, jako by šlo o funkce s instancí.Kromě toho musí být vložená funkce definována právě jednou.
Členská funkce třídy má ve výchozím nastavení vnější propojení, pokud její definice neobsahuje specifikátor inline.Předchozí příklad ukazuje, že tyto funkce není zapotřebí explicitně deklarovat se specifikátorem inline. Použití specifikátoru inline v definici funkce vede ke jejímu vložení.Po zavolání funkce však není povoleno ji opětovně deklarovat s klíčovým slovem inline.