ExpertiDict

C++ · Essencial · Português · Técnico

referência

ʁefeˈɾẽsjɐsubstantivo

Apelido para um objeto que já existe, declarado com &. Precisa ser inicializada na declaração, não pode ser nula e não pode ser religada a outro objeto depois.

Onde usar

Usada para passar argumentos grandes sem copiar, como em void f(const std::string& s). Em um code review, ela sinaliza que o parâmetro é obrigatório, ao contrário de um ponteiro.

Em código

void dobra(int& n) {
  n *= 2;  // altera o original
}
int a = 5;
dobra(a);  // a vale 10

Exemplos

Troquei o ponteiro por uma referência constante, já que o argumento nunca é nulo.

Se você receber por referência, a função altera a variável original.

Cuidado

Retornar referência para uma variável local cria uma referência pendurada e comportamento indefinido.

Veja também

Todos os termos de C++