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?

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top