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.h
12// 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.h
12// 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!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
What are the main benefits of using std::make_shared over using new with shared_ptr?
Can you explain more about how the reference count works with shared_ptr?
How do I safely pass shared_ptr objects between functions?
Awesome!
Completion rate improved to 5.56
Erstellen und Teilen von Shared Pointers
Swipe um das Menü anzuzeigen
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.h
12// 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.h
12// 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!