Declaração de variável com const e referência
Pergunta
Estou confuso sobre declarações de variáveis com referências.Eu li algumas páginas e que me deixou mais confuso, então preferiu perguntar aqui.
Foi-me pedido 4 perguntas em C++ uma entrevista;que um deles está errado e por quê?
(1) int & n;
(2) const int & n=15;
(3) float x; const int & n =x;
Pode alguém por favor explique-lhes que na incorreto e por quê?
Solução
tl;dr Referências devem ser inicializadas na declaração (diretamente ou na classe inicialização).
int& n;
Isso deixa a referência n
uninitialised.As referências devem ser inicializadas na declaração.
const int& n = 15;
Nada de errado aqui.A referência a um const int
é inicializado para 15
.
float x; const int& n = x;
O float
é ok, mas é uma má idéia para ser deixado uninitialised.Referência n
sendo inicializada para x
(float/integral conversões aplicar), não é uma grande idéia.
Outras dicas
Uma referência deve sempre ser inicializado.