Dies ist wahrscheinlich eine lächerlich einfache Frage, aber ich habe für die Antwort für eine Weile gesucht, aber kann nicht scheinen, dies herauszufinden. Ich versuche, eine konstante variable Konstante in einer Klasse zu initialisieren. Hier ist die Header-Datei:Nicht initialisierte konstante Mitglieder in Klassen
class Scheduler{
public:
Scheduler();
explicit Scheduler(unsigned long *);
private:
const unsigned long *const thresh;
};
Und hier ist der Konstruktor für die Klasse
Scheduler::Scheduler(unsigned long * threshold):
thresh(threshold)
{}
Wenn ich versuche, diesen Code zu kompilieren ich in diesen Fehler laufen:
scheduler.cpp: In constructor ‘Scheduler::Scheduler()’:
scheduler.cpp:3: error: uninitialized member ‘Scheduler::thresh’ with ‘const’ type ‘const long unsigned int* const’
Mehrere Quellen Das Online-Erörtern konstanter Membervariablen in Konstruktoren für Elementvariablen verweist auf die Verwendung von Initialisierungslisten. Ich denke, ich mache, was ich soll, aber anscheinend ist es immer noch nicht gut. Kann jemand sehen, was falsch ist?
Ihr Code scheint die Implementierung des Standardkonstruktors zu fehlen, von wo der Fehler kommt. – visitor