Variablendeklaration mit const und Referenz
Frage
Ich bin verwirrt über Variablendeklarationen mit Referenzen.Ich habe einige Seiten gelesen und das hat mich noch mehr verwirrt, also habe ich lieber hier nachgefragt.
In einem C++-Interview wurden mir vier Fragen gestellt;Welche davon ist falsch und warum?
(1) int & n;
(2) const int & n=15;
(3) float x; const int & n =x;
Könnte mir bitte jemand erklären, was falsch ist und warum?
Lösung
tl;dr Referenzen müssen bei der Deklaration initialisiert werden (entweder direkt oder bei der Klasseninitialisierung).
int& n;
Damit bleibt die Referenz übrig n
nicht initialisiert.Referenzen müssen bei der Deklaration initialisiert werden.
const int& n = 15;
Hier ist nichts falsch.Der Verweis auf a const int
wird initialisiert auf 15
.
float x; const int& n = x;
Der float
ist in Ordnung, aber es ist eine schlechte Idee, nicht initialisiert zu bleiben.Die Referenz n
initialisiert wird x
(Es gelten Float-/Integral-Konvertierungen), das ist auch keine gute Idee.
Andere Tipps
Eine Referenz muss immer initialisiert werden.