Ich habe versucht, für die Antwort herum zu suchen, aber bisher kein Glück. Meine Frage ist - warum müssen Referenzvariablen initialisiert werden, wenn sie definiert sind? Ist es ein technischer Grund oder ist es nur etwas, was der Standard nicht zulässt?Warum müssen Referenzvariablen bei der Definition initialisiert werden?
Nehmen Sie diesen Code zum Beispiel:
int number = 42;
int& numberRef;
numberRef = number;
Above nicht erlaubt ist, doch der Code unten ist:
int number = 42;
int& numberRef = number;
Warum kann der Compiler einen nicht initialisierten Referenzvariable wie einem nicht initialisierten behandeln Zeiger? Gibt es etwas, das mir hier fehlt?
Referenzen Rebound werden können: es gibt eine syntaktisch-semantische Mehrdeutigkeit, und es durch die Definition aufgelöst ist, dass tatsächlich zu einem Referenzzuweisungsmittel zum genannten Objekt zuweisen, wobei die Initialisierung der Referenz lediglich den Verweis auf das bindet Referenzobjekt –
Wenn es nicht initialisierte Referenzen gäbe, warum würden wir sie überhaupt brauchen? Wir haben bereits Zeiger. – Drop
@Drop, um zu vermeiden, das '->' in unserem Code zu schreiben :) – Chiel