foreach oder Iteratoren - Verständnisfrage
Verfasst: 28. Juni 2009 00:54
Hallo!
Ich bin auf dem Weg viele meiner QMap<foo, Klasse*> Konstrukte durch QMap<foo, Klasse> zu ersetzen um mir die Arbeit mit den Zeigern zu ersparen und dadurch vielleicht ein fehlerunanfälligeres Programm zu erlangen. Sprich: Qt scheint die Sache mit den Zeigern prima selbst zu lösen. Aber bei einer Stelle entdecke ich ein Rätsel (siehe Kommentare im Code):
Also warum verhält sich Qt so? Mal wird der Destruktor aufgerufen, mal nicht.
Grüße!
Ich bin auf dem Weg viele meiner QMap<foo, Klasse*> Konstrukte durch QMap<foo, Klasse> zu ersetzen um mir die Arbeit mit den Zeigern zu ersparen und dadurch vielleicht ein fehlerunanfälligeres Programm zu erlangen. Sprich: Qt scheint die Sache mit den Zeigern prima selbst zu lösen. Aber bei einer Stelle entdecke ich ein Rätsel (siehe Kommentare im Code):
Code: Alles auswählen
// Ruft immer den Destruktor auf
foreach (Klasse klasse, myMap)
{ someCodeOrJustASemicolon; }
// Ruft den Destruktor niemals auf
QMapIterator<foo, Klasse> i(myMap);
while (i.hasNext())
{
i.next();
}
Grüße!