F
@wob sagte in abgeleitete Objekte dynamisch in einen Vector speichern:
@Finnegan sagte in abgeleitete Objekte dynamisch in einen Vector speichern:
Hah! Stimmt ja ... ist aber vielleicht angebracht irgendwann mal Kopieroperationen für RVE zu implementieren, je nachdem wie man die Klasse verwenden will. "Geometrie kopieren" kann ja durchaus nützlich sein.
Stimmt, aber ob das immer tiefe Kopien sein müssen? Gerade wenn man viele Objekte hat, kann das schnell zu viel Speicherbedarf führen.
[...]
Aber hängt sicher vom Problem und der Datenmenge ab.
Ja, stark problemabhängig. Mir schwebte eher sowas vor wie eine Editoroperation vor: Gruppe Kreise kopieren und die dann an eine andere Position verschieben. Radius und relative Positionen bleiben, aber es können nicht exakt die selben Objekte sein, da ihre absolute Position eine andere sein muss.
Es kann durchaus eine gute Idee sein, die Objekte unveränderbar zu machen und bei Änderungen einfach neue Objekte zu erzeugen. Dann wird das Kopieren eine einefache Operation, weil man nur noch die Referenz / den Pointer kopieren muss.
Das kann Sinn machen, wenn man allerdings so wie es derzeit mit unique_ptr umgesetzt istRVE überhaupt kopierbar machen will, dann ist natürlich als tiefe Kopie. Andernfalls vector<shared_ptr> oder (etwas haarig, aber auch eine Option, wenn man weiss was man tut) vector<reference_wrapper>.