c++: new und delete



  • Hallo!

    In meinem Programm gibt es eine Klasse polynom ,
    die ein Element *int koeff besitzt.

    Im Konstruktor von polynom mache ich
    koeff = new int[10];

    Im destruktor von polynom mache ich
    delete [] koeff ;

    In einer anderen Funktion einer anderen klasse erzeuge ich ein polynom mit
    polynom hilfspoly;

    Wenn diese Funktion zu Ende ist, dann wird das hilfspoly nicht mehr benötigt. Da ich es aber nicht mit new erzeuge wird es doch auf den Stack/Keller gelegt? Muss ich ed dennoch mit delete wieder loeschen, weil ja im konstruktor ein new verwendet wird, was ja eigentlich Speicher des Freispeichers verwendet???
    Ich hab auch wo gelesen, das das loeschen von objekten, die nicht mit new erzeugt werden, unvorhergesehene Folgen haben kann.
    Was soll ich machen?? Speicher ist in meinem Programm wichtig!!



  • Original erstellt von <hilfesuchender>:
    Da ich es aber nicht mit new erzeuge wird es doch auf den Stack/Keller gelegt? Muss ich ed dennoch mit delete wieder loeschen, weil ja im konstruktor ein new verwendet wird, was ja eigentlich Speicher des Freispeichers verwendet???

    Nein. Der Destruktor wird beim Verlassen des Scopes automatisch aufgerufen, das ist ja gerade der Witz bei der Sache.



  • Nee, brauchste nicht.
    Das wird Dir bei dieser Erzeugung des Objektes automatisch abgenommen.

    Legolas


Log in to reply