Das liegt daran, dass Referenzen nur in der Initialisierungsliste initialisiert werden können. Verwenden Sie
%Vor% Zur Erklärung: Die Referenz kann nur einmal gesetzt werden, der Ort, an dem dies geschieht, ist die Initialisierungsliste. Danach können Sie die Referenz nicht festlegen, sondern der referenzierten Instanz nur Werte zuweisen. Ihr Code bedeutet, dass Sie versucht haben, einer referenzierten Instanz etwas zuzuweisen, aber die Referenz wurde nie initialisiert. Daher referenziert sie keine Instanz von int
und Sie erhalten den Fehler.
Mein Compiler gibt diesen Fehler aus:
Fehler C2758: 'Test :: t': muss in der Konstruktorbasis / Elementinitialisierungsliste
initialisiert werden
Und genau das müssen Sie tun. Referenzen müssen in der Initialisierungsliste initialisiert werden:
%Vor%Erläuterung:
Wenn der Verweis nicht in der intitiliazer-Liste enthalten ist, ist es für den Compiler fast unmöglich festzustellen, ob der Verweis initialisiert ist. Referenzen müssen initialisiert werden. Stellen Sie sich dieses Szenario vor:
%Vor%Nun wäre es Sache des Aufrufers des Konstruktors zu entscheiden, ob ein gültiger Code generiert wurde. Das kann nicht sein. Der Compiler muss sicherstellen, dass der Verweis zum Zeitpunkt der Kompilierung initialisiert wird.
Tags und Links c++ oop class-members