C++ riferimenti hanno due proprietà:Perché i riferimenti non reseatable in C++
- Essi puntano allo stesso oggetto sempre.
- Non possono essere 0.
puntatori sono l'opposto:
- Possono puntare a oggetti differenti.
- Possono essere 0.
Perché non c'è "non annullabile, riferimento reseatable o il puntatore" in C++? Non riesco a pensare a una buona ragione per cui i riferimenti non dovrebbero essere resettabili.
Edit: La questione si presenta spesso perché io di solito uso i riferimenti quando voglio fare in modo che un ' "associazione" (Sto evitando le parole "di riferimento" o "puntatore" qui) non è mai valido.
Non credo di aver mai pensato "fantastico che questo riferimento si riferisca sempre allo stesso oggetto". Se i riferimenti erano reseatable, si poteva ancora ottenere il comportamento attuale in questo modo:
int i = 3;
int& const j = i;
questo è già C++ legale, ma senza senso.
ho ribadiscono la mia domanda in questo modo: "Qual è stata la logica alla base del 'un riferimento è l'oggetto' progettare Perché è stato ritenuto utile avere riferimenti sempre essere lo stesso oggetto, anziché soltanto? quando dichiarato come const? "
Cheers, Felix
So che è un po 'tardi, ma la risposta di Michael Burr sembra essere la più completa. Spiega le decisioni filosofiche del design di Stroustrup. Tutti gli altri sembrano mendicare la discussione (in un giro su modo). – jww