C++ Referenzen haben zwei Eigenschaften:Warum sind Referenzen reseatable in nicht C++
- immer auf das gleiche Objekt zeigen Sie.
- Sie nicht 0.
Pointers sind das Gegenteil sein:
- Sie auf verschiedene Objekte verweisen.
- Sie können 0.
sein Warum gibt es keine "Nicht-NULL-Werte zulässt, reseatable Verweis oder Zeiger" in C++? Ich kann mir keinen guten Grund vorstellen, warum Referenzen nicht umsetzbar sein sollten.
Edit: Die Frage kommt oft, weil ich in der Regel Referenzen verwenden, wenn ich sicherstellen möchten, dass eine „Vereinigung“ (Ich bin die Worte „Referenz“ oder „Zeiger“ hier zu vermeiden) nie ungültig ist.
Ich glaube nicht, dass ich jemals dachte "großartig, dass dieser Verweis immer auf das gleiche Objekt bezieht". Wenn Referenzen reseatable wären, könnte man immer noch das aktuelle Verhalten wie diese:
int i = 3;
int& const j = i;
Dies ist bereits rechtlich C++, aber sinnlos.
Hiermit erneuere ich meine Frage wie folgt aus: „Was ist die Logik hinter der war‚ein Referenz ist das Objekt‘Design Warum wurde es für zweckmäßig erachtet, Referenzen zu haben immer das gleiche Objekt, statt nur von? wenn es als const erklärt wird? "
Cheers, Felix
Ich weiß, das ist ein bisschen spät, aber Michael Burrs Antwort scheint die vollständigste zu sein. Es erklärt Stroustrups philosophische Designentscheidungen. Alle anderen scheinen das Argument zu erbitten (in einer Runde herum). – jww