Geben STL Container im Destruktor Speicherplatz auf dem Heap frei?
-
Hallo Leute!
Ich habe in einem Programm einen STL vector mit Basisklassenzeigern definiert.
class Muster { typedef std::vector<Basis*>Liste; Liste iListe; ........ }; Muster::Muster() //Standardkonstruktor { //Hier werden Objekte am Heap angelegt iListe.push_back(new Basis()); iListe.push_back(new Abgeleitet()); ....... } Muster::~Muster() { Liste::iterator it=iListe.begin(); while(it!=iListe.end()) delete (*it)++; }
Ist das okay so? Muss man den am Heap allokierten Speicher explizit freigeben?
Bin noch nicht so versiert in den Internas der STL, deshalb die Frage.
Vielen Dank!
-
Das ist Ok, STL-Vector weiss nicht ob es Zeiger oder non-Zeiger behaeltet.
-
Sicher, dass es nicht "delete *(it++)" heissen soll?