inline
A declaração de uma rotina como em linha (inline
) faz com que uma invocação
dessa rotina, ao ser gerado o correspondente
código máquina, seja substituída pelo código integral
da rotina, em vez de ser utilizado o mecanismo
normal de invocação (na realidade o compilador pode não
honrar este compromisso, digamos que é uma dica ao compilador).
A utilização de rotinas em linha torna o código potencialmente mais rápido, mas também torna o programa executável mais extenso. Por isso, só as rotinas muito simples devem ser declaradas como em linha.
Uma rotina pode ser declarada como em linha
precedendo a sua definição da palavra chave inline
.
Por exemplo:
Um método pode ser declarado como em linha de uma de duas formas:
inline int somaDe(int const a, int const b)
{return a + b;
}
class PilhaDeInt {
public:
...
int altura() const
{
return altura_;
}
...
private:
int altura_;
...
};
inline
na definição
do método:
class PilhaDeInt {
...
int altura() const;
...
private:
int altura_;
...
};
...
inline int PilhaDeInt::altura() const
{ return altura_;
}