std::list
-
Hey
liege ich mit der Vermutung richtig, dass:
std::list<MyClass*> AList ; AList.push_back(new MyClass(...)) ;Der Destruktor von std::list den Speicher NICHT freigibt?
-
ja
-
Pro new, ein delete. Pro new[], ein delete[].
Einzige Ausnahme: Smart-Pointer.
-
Gut, danke!
-
Janjan schrieb:
Pro new, ein delete. Pro new[], ein delete[].
Einzige Ausnahme: Smart-Pointer.
Jein. Zu beiden Statements.
Boost.PtrContainer z.B.
Oder in Qt die automatisch gelöschten children.
Allgemein: Wenn der Erzeuger irgenwann die Ownership am Objekt an ein anderes Objekt übergibt, braucht er nicht mehr selber zerstören. Sowas steht aber in der Doku der jeweiligen Klassen/Methoden.
-
Oder nimm Boost.PointerContainer da werden die Pointer in der Liste automatisch freigegeben.
Gut Schuß
VuuRWerK
[edit]@l'abra d'or: Auf die Sekunde genau ;)[/edit]
-
Bezog sich auf Standard C++.
-
Ah, Boost::PointerContainer ist schon eine feine Sache! Danke