zirkuläre Referenz mit shared_ptr und weak_ptr



  • Ich will den shared_ptr in meinem Programm benutzen. Aber durch die Referenzzählung kann es ja zu zirkulären Referenzen kommen. Wie kann ich das aber mit dem weak_ptr beheben?



  • Hallo,
    ich gehe mal davon aus, dass du die boost-Smartptr meinst. Wenn dies der Fall sein sollte, was stimmt mit der Doku denn nicht? Also was genau ist dein Problem?



  • SlimTimmy schrieb:

    Ich will den shared_ptr in meinem Programm benutzen. Aber durch die Referenzzählung kann es ja zu zirkulären Referenzen kommen. Wie kann ich das aber mit dem weak_ptr beheben?

    wenn man sie nur da nimmt, wo es notwendig ist, seh ich kein prob. kann mir kreisbildung eingentlich nur vorstellen, wenn man refcounting pointers überall verwendet, um sich der lästigen pflicht zu entledigen, delete aufzurufen.
    allgemein kannste kreise nicht vermeiden, aber ich denke mal, bei jedem konkreten problem wird sich ne gute lösung finden.
    manchmal setze ich je nen zeiger aller lebender objekte einer klasse in ne globale liste rein, damit ein definierter besitzer (und zerstörer) da ist und hantiere nur mit normalen pointern zwischen den ganzen vielen funktionsaufrufen.


Anmelden zum Antworten