copy Konstruktor ruft Destruktor auf??
-
Ich möchte eine Copy einer Klasse anlegen:
void widgetAdvancedComplexBeamView::setComplexData(beamshapes * Array) { m_ComplexBeam = beamshapes(*Array); // call copy konstruktor ...beamshapes(const beamshapes & oldBeam) { setDescription(oldBeam.Description() + "(COPY)"); // -> oldBeam -> m_ComplexBeamData.Complex oldBeam.getDataComplex(m_ComplexBeamData.Complex); } ~beamshapes(){};Rufe ich den Copy Konstruktor auf wird dieser vollständig abgearbeitet aber danach direkt der Destruktor aufgerufen - warum ?
Matthias
-
temporäres objekt!
-
pospiech schrieb:
Ich möchte eine Copy einer Klasse anlegen:
Dann solltest du eben genau das tun. Was du tust ist aber ein Objekt einer Klasse mittels Standardkonstruktor anzulegen, und später eine Zuweisung zu machen. Du solltest dich dringend mit der Initialisierungsliste beschäftigen!
void widgetAdvancedComplexBeamView::setComplexData(beamshapes * Array) : m_ComplexBeam(beamshapes(*Array)) // Dies wäre der copy konstruktor { // <-- Hier sind wiederum die Objekte alle schon erzeugt! m_ComplexBeam = beamshapes(*Array); // Dies ist der Zuweisungsoperator ... }cu André