Kursinhalt
C++ Smart Pointers
C++ Smart Pointers
Wichtige Funktionen für Schwache Zeiger
Um das volle Potenzial von Weak Pointern auszuschöpfen, ist es wichtig, die folgenden Funktionen zu kennen.
Bevor Sie einen Aufruf an lock()
machen, können Sie überprüfen, ob ein Weak Pointer noch gültig ist (d.h., ob das referenzierte Objekt noch existiert), indem Sie die Methode expired()
verwenden. Diese Funktion gibt true zurück, wenn das referenzierte Objekt zerstört wurde, und false andernfalls.
Im obigen Beispiel rufen wir expired()
auf, bevor wir den Weak Pointer sperren und auf das referenzierte Objekt zugreifen.
Die Funktion use_count()
Während ein Weak Pointer die Referenzanzahl eines Objekts nicht beeinflusst, ist es oft nützlich zu wissen, wie viele Shared Pointers dasselbe Objekt verwalten. Die Funktion use_count()
gibt diese Anzahl zurück.
Die Funktion reset()
Um einen schwachen Zeiger von seinen Aufgaben der Beobachtung eines Objekts zu entbinden, können Sie die Funktion reset()
verwenden. Dadurch wird der schwache Zeiger leer, d.h. er zeigt auf kein Objekt mehr.
Die Funktion swap()
Die Funktion swap()
kann verwendet werden, um den Inhalt von zwei schwachen Zeigern auszutauschen. Dies ist besonders nützlich, wenn Sie die Objekte ändern möchten, die die beiden schwachen Zeiger beobachten, ohne die Eigentümerschaft oder Lebensdauer der dynamischen Objekte zu verändern.
In diesem Code-Snippet beobachtet weakPtrA
zunächst das Objekt, das von sharedPtrA
verwaltet wird, und weakPtrB
beobachtet das Objekt, das von sharedPtrB
verwaltet wird.
Nachdem wir swap()
aufgerufen haben, zeigt weakPtrA
auf das Objekt, das zuvor von sharedPtrB
verwaltet wurde, und umgekehrt.
Danke für Ihr Feedback!