Next: Parâmetros default
Up: Funções
Previous: Protótipos
  Sumário
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
"The values are ";
printf(%3d %3d
n", count, index);
fiddle(count, index);
cout
"The values are ";
printf(%3d %3d
n", count, index);
}
void fiddle(int in1, int &in2)
{
in1 = in1 + 100;
in2 = in2 + 100;
cout
"The values are ";
printf(%3d %3d
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: Parâmetros default
Up: Funções
Previous: Protótipos
  Sumário
Ivan Luiz Marques Ricarte
2001-06-01