C++ · Essencial · Português · Técnico
referência
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 10Exemplos
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.