const-Verweis muss in der Konstruktorbasis / Elementinitialisierungsliste initialisiert werden

8

Ich versuche, den Zugriff auf den Standardkonstruktor einer Klasse, die ich schreibe, zu blockieren. Der Konstruktor, den andere verwenden sollen, erfordert eine konstante Referenz auf ein anderes Objekt. Ich habe den Standardkonstruktor privat gemacht, um zu verhindern, dass andere ihn benutzen. Ich erhalte einen Compilerfehler für den Standardkonstruktor, weil die Konstantenreferenzelementvariable nicht richtig initialisiert wird. Was kann ich tun, um das kompilieren zu lassen?

%Vor%     
Trevor Balcom 02.07.2010, 18:30
quelle

2 Antworten

12

deklarieren Sie nicht den Standardkonstruktor. Es ist sowieso nicht verfügbar (automatisch, dass es), wenn Sie Ihren eigenen Konstruktor deklarieren.

%Vor%

ziemlich umfassende Erklärung der Konstruktoren finden Sie hier: Ссылка

    
Anycorn 02.07.2010, 18:34
quelle
4

Der einfachste Weg, den Standardkonstruktor zu erstellen, den Sie nicht verwenden wollen (das ist der Fall mit Ihrem Konstruktor, ist das richtig?), definiert ihn einfach nicht, das heißt:

%Vor%

In diesem Fall ist es möglicherweise etwas überflüssig, da der Compiler keinen Standardkonstruktor für eine Klasse mit einem Referenzelement erstellt, aber es ist besser, ihn dort einzufügen, falls Sie das Referenzelement löschen.

    
jpalecek 02.07.2010 18:35
quelle