Kursinhalt
C++ Smart Pointers
C++ Smart Pointers
Erstellen und Teilen von Shared Pointers
Der empfohlene Ansatz
Der empfohlene Weg, um einen Shared Pointer zu erstellen, ist die Verwendung der Funktion std::make_shared
. Dieser Ansatz ist im Allgemeinen effizienter und ausdrucksstärker im Vergleich zur Verwendung von new
. Er allokiert Speicher für das Objekt und den Kontrollblock (Referenzzähler) in einem einzigen Schritt. Zum Beispiel:
make_shared
// Create a shared pointer to an integer std::shared_ptr<int> p_int = std::make_shared<int>(42);
Die obige Zeile allokiert eine dynamische Ganzzahl und initialisiert auch einen Shared Pointer darauf mit einem Referenzzähler von eins.
Der Entmutigte Ansatz
Sie können auch Shared Pointers mit new
erstellen, aber diese Methode wird nicht empfohlen, da sie weder ausdrucksstark noch effizient ist. Die Syntax für diesen Ansatz erfordert, dass Sie das Objekt an den Konstruktor des Shared Pointers übergeben.
creating_shared_pointer
// Also creates a shared pointer to an integer std::shared_ptr<int> p_int(new int(42));
Zuweisung eines dynamischen Integers und anschließendes Übergeben an den Konstruktor des Shared Pointers. Der Kontrollblock (Referenzzähler) wird jedoch im Konstruktor initialisiert.
Das bedeutet, dass wir zwei separate Initialisierungen durchführen, was ineffizient ist und Fehler erzeugt werden könnten.
Weitergabe von Shared Pointers
Shared Pointers sind speziell für sicheres Teilen entwickelt. Lassen Sie uns einige Möglichkeiten erkunden, wie wir sie weitergeben können.
Danke für Ihr Feedback!