next up previous contents
Next: Parâmetros default Up: Funções Previous: Protótipos   Sumário

Passagem por referência

Passagem por referência é mais uma particularidade de C ++, não presente em ANSI-C. O mecanismo de referência já foi mencionado anteriormente, mas em um contexto ``não-aconselhável''; aqui, o mecanismo será apresentado na forma em que ele é mais útil.

Passagem por referência permite passar uma variável para uma função e retornar as mudanças feitas pela função para o programa anterior. O mesmo efeito pode ser obtido com apontadores em ANSI-C, mas o mecanismo de referência é mais claro e elegante.

O seguinte exemplo ilustra a combinação do mecanismo de referência e passagem de argumentos para funções.

indentation

#include $<$iostream.h$>$
#include $<$stdio.h$>$

void fiddle(int in1, int &in2);

main()
{
int count = 7, index = 12;

cout $\ll$ "The values are ";
printf(%3d %3d$\backslash$n", count, index);

fiddle(count, index);

cout $\ll$ "The values are ";
printf(%3d %3d$\backslash$n", count, index);
}

void fiddle(int in1, int &in2)
{
in1 = in1 + 100;
in2 = in2 + 100;
cout $\ll$ "The values are ";
printf(%3d %3d$\backslash$n", in1, in2);
}
Observe que o segundo argumento da função fiddle é precedido por &. A consequência é que, para este argumento, a variável ``verdadeira'' do programa anterior será usada; o normal, passagem por valor, é que apenas uma cópia do valor corrente da variável seja passada para a função. Este efeito explica o resultado obtido pela execução deste programa, apresentado a seguir.
     The values are    7  12
     The values are  107 112
     The values are    7 112


next up previous contents
Next: Parâmetros default Up: Funções Previous: Protótipos   Sumário
Ivan Luiz Marques Ricarte 2001-06-01