Partager via


Fonctions intégrées au membre de classe

Une fonction définie dans le corps d'une déclaration de classe est une fonction inline.

Exemple

dans la déclaration de classe suivante, le constructeur d' Account est une fonction inline.Les fonctions membres GetBalance, Deposit, et Withdraw ne sont pas spécifiées comme inline mais peuvent être implémentées comme des fonctions inline.

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

[!REMARQUE]

dans la déclaration de classe, les fonctions ont été déclarées sans mot clé d' inline .le mot clé d' inline peut être spécifié dans la déclaration de classe ; le résultat est le même.

Une fonction membre intégrée données doit être déclarée de la même manière dans chaque unité de compilation.Cette contrainte entraîne comporter des fonctions inline comme si elles étaient des fonctions instanciées.En outre, il doit exister une seule définition d'une fonction inline.

Une fonction membre de classe correspond par défaut à la liaison externe à moins qu'une définition de cette fonction contienne le spécificateur d' inline .L'exemple précédent indique que ces fonctions n'ont pas besoin d'être déclarées explicitement avec le spécificateur d' inline ; à l'aide de inline dans la définition de la fonction entraîne une fonction inline.Toutefois, il n'est pas conforme pour redéclarer une fonction comme inline après un appel de cette fonction.

Voir aussi

Référence

inline, __inline, __forceinline