Fehler beim Löschen des Inhaltes eines Vectors



  • Hallo Leute,

    warum kann ich nicht den Inhalt meines Vectors, der mit struct gefüllt ist Löschen ?

    Hier der Source:

    // meine Klasse
    struct struGruppeBenutzer
    { 
    	std::string strGruppenname;
    	std::string strBenutzer;	
    };
    
    class CGruppenListe  
    {
    private:
    struGruppeBenutzer m_GruppeBenutzer;
    std::vector<struGruppeBenutzer> m_vGruppeBenutzer;
    }
    

    Und so möchte ich den Vector wieder Löschen:

    for(int x=0;x < m_vGruppeBenutzer.size();x++) 
    {
    	delete m_vGruppeBenutzer[x];
    }
    
    m_vGruppeBenutzer.clear();
    

    Er bringt mir folgende Fehlermeldung:

    error C2440: 'delete' : 'struct struGruppeBenutzer' kann nicht in '' konvertiert werden
    Kein benutzerdefinierter Konvertierungsoperator verfuegbar, der diese Konvertierung durchfuehren kann, oder der Operator kann nicht aufgerufen werden

    ICh kann mit der Fehlermeldung nichts anfangen.

    Gruß und Danke
    andy_mann



  • Hallo,

    man kann mit delete nur über mit new besorgte Zeiger die dadurch referenzierten Objekte löschen.

    MfG



  • Vielen Dank,

    das heist, dass wenn ich die Klasse verlasse der Inhalt wieder leer ist...

    Gruß
    andy_mann



  • andy_mann schrieb:

    das heist, dass wenn ich die Klasse verlasse der Inhalt wieder leer ist...

    ja, genau, clear benötigst du nur, wenn du zwischendurch den vector völlig entleeren mußt, unabhängig von der Existenz der Objekte/Zeiger/Daten, die in ihm gespeichert sind

    MfG


Anmelden zum Antworten