Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Shared Pointer Funktionen zum Erinnern | Gemeinsame 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
Shared Pointer Funktionen zum Erinnern

Wir haben bereits erkundet, was Shared Pointers sind und wie man sie erstellt und teilt. Jetzt schauen wir uns einige wichtige Funktionen und Operatoren an, die Shared Pointers noch leistungsfähiger und flexibler machen.

Die reset-Funktion

Die reset-Funktion ermöglicht es Ihnen, einen Shared Pointer zurückzusetzen, d.h. seine Eigentümerschaft am dynamischen Objekt freizugeben. Wenn Sie reset aufrufen, verringert sich der Referenzzähler, und wenn keine anderen Shared Pointers auf das referenzierte Objekt verweisen, wird der Speicher automatisch freigegeben.

Hinweis

Wenn andere Shared Pointers auf das Objekt verweisen, verringert sich der Referenzzähler. Nichtsdestotrotz bleibt das Objekt bestehen, bis alle Shared Pointers zurückgesetzt oder außer Geltung geraten sind. Diese Funktion erfüllt effektiv zwei Zwecke.

Beim Neuzuweisen eines Shared Pointers

Wenn Sie ein neues Objekt als Argument an die reset-Funktion übergeben, zeigt der Shared Pointer auf das neue Objekt.

Im obigen Code weisen wir sharedPtr einer neuen Instanz von MyClass zu.

Beim Freigeben des Besitzes

Wenn Sie reset ohne Parameter aufrufen, hört der Shared Pointer einfach auf, auf das dynamische Objekt zu zeigen.

Im obigen Code geben wir einfach den Besitz des dynamischen Integers von sharedInt frei.

Die swap-Funktion

Verwenden Sie die swap-Funktion, wenn Sie den Inhalt von zwei Shared Pointern austauschen möchten. Denken Sie daran, dass beim Austauschen von zwei Shared Pointern auch ihre Referenzzähler und die Eigentümerschaft der dynamischen Objekte ausgetauscht werden.

Im obigen Code tauschen wir zwei Shared Pointer aus, die beide auf dynamische Ganzzahlen zeigen. Nachdem der Code ausgeführt wurde, wird sharedInt1 den Wert 99 halten, während sharedInt2 den Wert 42 halten wird.

Die get-Funktion

Genau wie eindeutige Zeiger hält jeder Shared Pointer einen rohen Zeiger auf das dynamische Objekt. Sie können die get-Funktion verwenden, um den rohen Zeiger abzurufen, ohne die Referenzanzahl zu beeinflussen.

Im obigen Code extrahieren wir einen rohen Zeiger aus einem Shared Pointer. Dies kann notwendig sein, wenn man mit Legacy-Code arbeitet, der keine Smart Pointer unterstützt.

Die Funktion use_count

Die Funktion use_count ermöglicht es Ihnen, die aktuelle Referenzanzahl eines Shared Pointers zu überprüfen. Sie ist besonders nützlich zum Debuggen und um sicherzustellen, dass das gemeinsame Eigentum wie erwartet funktioniert.

Im obigen Code verwenden wir die Funktion use_count, um die aktuelle Referenzanzahl des Shared Pointers zu erhalten.

Operatoren für Shared Pointer

Shared Pointer bieten mehrere Operatoren, um C++-Code prägnanter und lesbarer zu machen. Zum Beispiel:

  • Die Operatoren == und != ermöglichen es Ihnen, einen Shared Pointer mit einem anderen Shared Pointer oder mit nullptr zu vergleichen.
  • Der Dereferenzierungsoperator * bietet Zugriff auf das dynamische Objekt, auf das der Shared Pointer zeigt.
  • Der Pfeiloperator -> erleichtert den Zugriff auf die Mitglieder des Objekts, auf das der Shared Pointer zeigt.
Was passiert, wenn wir `swap` auf einem Shared Pointer aufrufen?

Was passiert, wenn wir swap auf einem Shared Pointer aufrufen?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

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