inline Klassenmember-Funktionen
Eine Funktion, die im Text einer Klassendeklaration definiert ist, ist eine Inlinefunktion.
Beispiel
In der folgenden Account-Konstruktor ist der Klassendeklaration eine Inlinefunktion.Die Memberfunktionen GetBalance, Depositund Withdraw nicht angegeben, werden als inline kann jedoch als Inlinefunktionen implementiert werden.
// 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()
{
}
Hinweis |
---|
In der Klassendeklaration wurden die Funktionen ohne das inline-Schlüsselwort deklariert.Das inline-Schlüsselwort kann in der Klassendeklaration angegeben werden. stimmt mit dem Ergebnis. |
Eine angegebene inline Memberfunktion muss die gleiche Weise deklariert sind, in einem der Kompilierung.Diese Einschränkung bewirkt, dass sich entsprechend verhalten, Inlinefunktionen als instanziierte Features waren.Außerdem muss es sich um eine Definition einer Inlinefunktion genau sein.
Standardwerte einer Bindung der externen Funktion für Klassenmember, es sei denn, eine Definition für diese Funktion den inline Bezeichner enthält.Im vorhergehenden Beispiel zeigt, dass diese Funktionen nicht, müssen mit dem inline Spezifizierer explizit deklariert werden. Using inline in der Funktionsdefinition verursacht sie eine Inlinefunktion ist.Es ist jedoch nicht zulässig, eine Funktion als inline nach einem Aufruf dieser Funktion erneut zu deklarieren.