11. marts 2002 - 10:24Der er
7 kommentarer og 1 løsning
Destructor, Hvor meget gør den?
Hejsa alle i C++ guruer.
Hvor meget rydder default destrctorer'en selv op?
Jeg har en class XMLParser som indeholder et pointer til en class XMLHandler.
Når jeg kalder delete på min XMLParser pointer og eftefølgende kalder delete på min XMLHandler pointer får jeg at vide at jeg har deallokeret det samme hukommelse flere gange. Det kan være der skal lidt kode for at illustrerer problemet:
//The XML Parser and Handler are created XMLParser *xpaParser = new XMLParser(); XMLHandlerWriteMenu *xhaHandler = new XMLHandlerWriteMenu(XMLParameters, NUMBER_OF_PARAMETERS, TEMP_FILE, XML_File);
//The Parsers Handler pointer is set. xpaParser->setHandler(xhaHandler); //The XML file is parsed xpaParser->parse(infile);
INTET sted i min XMLParset klasse bliver den tilhørende XMLHandler delete'et, men hvis jeg delete'er mine to objekter som i ovenstående kode. kommer den fejlmeddelelse. Den lugter af at min XMLParser får nedlagt XMLHandler objektet, men jeg har INTET kode der gør det.
smartpointer er en der delete'r selv når den ikke skal bruges mere. Hvis du ikke ved hvad det er,har du nok ikke brugt den. Indeholder de to klasser for meget kode at poste her ?
Jeg prøver lige at rode lidt videre. Jeg har to steder hvor jeg bruger mine handler og parser klasser og det ene sted virker det fint, det andet sted går den kold. Jeg tror problemet er noget andet end destructoreren.
Tak for indsatsen.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.