Pointer und Klassen
-
Klasse A erstellt eine Klasse B. Klasse A wird nicht mit new initialisiert, sondern einfach mit A a;
B soll nun einen Pointer auf A haben, ich kann also B einfach ein this übergeben und das klappt auch. Aber dieser Pointer, von A, den ich B übergebe, dieser muss nicht verwaltet werden, sehe ich das richtig? Es braucht kein shared_ptr sein und löschen muss ich ihn auch nicht, oder?
-
Nicht nur, dass du ihn nicht löschen mußt, du darfst ihn gar nicht löschen.
Du mußt nur Pointer selber löschen, die du auch selber mit new erstellt hast.
-
Natürlich sollte man dann aufpassen das man A auch behält und dies nicht irgendwann vom Stack fällt und man nur mit Kopien davon arbeitet. Weil dann zeigt der Pointer von B auf ein nicht mehr gültiges A.
-
In meinem Fall ist es ne Komposition, bei der A das B erzeugt, daher passiert das nicht

Danke an beide