Compartilhar via


Funções de membro de classe embutido

Uma função definida no corpo de uma declaração de classe é uma função embutida.

Exemplo

Na declaração da classe seguinte, o Account construtor é uma função embutida.As funções de membro GetBalance, Deposit, e Withdraw não são especificados como in-line , mas pode ser implementado como funções embutidas.

// 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()
{
}
ObservaçãoObservação

Na declaração da classe, as funções foram declaradas sem a in-line palavra-chave.O in-line palavra-chave pode ser especificado na declaração da classe; o resultado é o mesmo.

Uma função de membro de determinado embutido deve ser declarada da mesma maneira em cada unidade de compilação.Essa restrição faz com que as funções embutidas se comporte como se fossem funções instanciadas.Além disso, deve haver exatamente uma definição de uma função in-line.

Uma função de membro de classe padrão é a ligação externa, a menos que uma definição para essa função contém o in-line especificador.O exemplo anterior mostra que essas funções precisam não sejam explicitamente declaradas com a in-line especificador; usando in-line na função definição faz com que ele seja uma função embutida.No entanto, é ilegal para redeclare uma função como in-line após uma chamada para essa função.

Consulte também

Referência

inline, embutido, __forceinline