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


Anmelden zum Antworten