Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Wichtige Funktionen für Schwache Zeiger | Schwache Zeiger
C++ Smart Pointers
course content

Kursinhalt

C++ Smart Pointers

C++ Smart Pointers

1. Einführung in Smart Pointer
2. Einzigartige Zeiger
3. Gemeinsame Zeiger
4. Schwache Zeiger
5. Referenzen
6. Fortgeschrittene Themen

book
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.

Welche Funktion sollten Sie verwenden, wenn Sie überprüfen möchten, ob eine von einem Weak Pointer referenzierte Ressource noch existiert oder nicht?

Welche Funktion sollten Sie verwenden, wenn Sie überprüfen möchten, ob eine von einem Weak Pointer referenzierte Ressource noch existiert oder nicht?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 4
We're sorry to hear that something went wrong. What happened?
some-alt