Als «smart-pointers» getaggte Fragen

Ein abstrakter Datentyp, der einen Zeiger simuliert und gleichzeitig zusätzliche Funktionen wie die automatische Speicherbereinigung oder die Überprüfung von Grenzen bereitstellt


2
Wie gebe ich intelligente Zeiger (shared_ptr) als Referenz oder nach Wert zurück?
Angenommen, ich habe eine Klasse mit einer Methode, die a zurückgibt shared_ptr. Was sind die möglichen Vor- und Nachteile einer Rücksendung nach Referenz oder Wert? Zwei mögliche Hinweise: Frühe Objektzerstörung. Wenn ich die shared_ptrby (const) -Referenz zurückgebe, wird der Referenzzähler nicht inkrementiert, sodass das Risiko besteht, dass das Objekt gelöscht …


4
Übergeben von shared_ptr <Derived> als shared_ptr <Base>
Was ist die beste Methode, um shared_ptreinen abgeleiteten Typ an eine Funktion zu übergeben, die shared_ptreinen Basistyp verwendet? Ich übergebe im Allgemeinen shared_ptrs als Referenz, um eine unnötige Kopie zu vermeiden: int foo(const shared_ptr&lt;bar&gt;&amp; ptr); aber das funktioniert nicht, wenn ich versuche, so etwas zu tun int foo(const shared_ptr&lt;Base&gt;&amp; ptr); …

3
shared_ptr magic :)
Herr Lidström und ich hatten einen Streit :) Die Behauptung von Herrn Lidström ist, dass für ein Konstrukt shared_ptr&lt;Base&gt; p(new Derived);Base keinen virtuellen Destruktor benötigt: Armen Tsirunyan : "Wirklich? Wird der shared_ptr korrekt bereinigt? Könnten Sie bitte in diesem Fall zeigen, wie dieser Effekt implementiert werden könnte?" Daniel Lidström : …



4
Ist auto_ptr veraltet?
Wird auto_ptr im eingehenden C ++ - Standard veraltet sein? Sollte unique_ptr anstelle von shared_ptr für die Eigentumsübertragung verwendet werden? Wenn unique_ptr nicht im Standard enthalten ist, muss ich stattdessen shared_ptr verwenden?


12
RAII gegen Garbage Collector
Ich habe kürzlich einen großartigen Vortrag von Herb Sutter über "Leak Free C ++ ..." auf der CppCon 2016 gesehen, in dem er über die Verwendung intelligenter Zeiger zur Implementierung von RAII (Ressourcenerfassung ist Initialisierung) - Konzepte und deren Lösung der meisten Probleme mit Speicherlecks sprach. Jetzt habe ich mich …

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.