Autor Beitrag
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 18.01.17 21:23 
- Nachträglich durch die Entwickler-Ecke gelöscht -
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Do 19.01.17 10:47 
Die Antwort ist ganz einfach: in C++ erzeugst du ja die Objekte mit new, also müssen diese auch mit delete wieder freigegeben werden (in Delphi aber mittels Create und Free (bzw. Destroy)).

Du mußt aber unterscheiden, ob du jetzt reine C++ Klassen hast (wie in deinem Beispielcode) oder aber von VCL-Objekten geerbte Klassen (wie z.B. eine von TForm abgeleitete eigene Form). Bei VCL-Objekten (Steuerelemten) sollte möglichst immer der Owner (dieser ist nicht zwangsläufig der Parent) beim Erzeugen mit angegeben werden, so daß beim Zerstören einer Form alle untergeordneten Steuerelemente automatisch mit freigegeben werden.

Bei reinen C++ Klassen gibt es ja generell das RAII-Prinzip, so daß man manuelle delete-Aufruf vermeiden sollte (und stattdessen dann z.B. unique_ptr<T> verwenden sollte).
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 19.01.17 11:34 
- Nachträglich durch die Entwickler-Ecke gelöscht -