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?


Anmelden zum Antworten