Kopierconstuctor bei list
-
Hallo
Mein Test Code
CModel super(CModel tmp) { return tmp; } ... CModel mdll("../debug/dataff.dat"); CModel test; test=super(mdll); cout << "Search Parm: L2 " << test.getValue("L") << endl; /**Ausgabe :Parameter L ist nicht in der Liste ist. Wenn ich aber
test=mdll mach funktioniert es richtig.CModel mdll("../debug/dataff.dat"); CModel test; test=mdll; cout << "Search Parm: L2 " << test.getValue("L") << endl;So bekomme ich die richtige Ausgabe.
Der Kopierkonstruktor
CModel::CModel(const CModel &cm) { cparmlist=cm.cparmlist; }cparmlist ist vom Typ
CParametersList cparmlist;Der Zuweisungsoperator und Kopierkonstruktor
CParametersList::CParametersList(const CParametersList &cparm) { this->parmlist = cparm.parmlist; } CParametersList &CParametersList::operator=(const CParametersList &cparm) { if (this == &cparm) return *this; else { parmlist = cparm.parmlist; return *this; } }Parmlist ist vom Typ
private: list<Parameters*> parmlist; list<Parameters*>::iterator itr_parmlist;Ich denke der fehler wird von Zuweisungsoprator in CParametersList verursacht. Bin mir aber nicht sicher.
danke für die Hilfe.
-
Nach einer weile bin ich drauf gekommen.
Ich hab die ganze Zeit Zeiger durch die gegen Kopiert. Nachdem löschen der Objecte auf die, die Zeiger zeigten gab es immernoch Zeiger die ins leere gezeigt haben.