Ein abstrakter Datentyp, der einen Zeiger simuliert und gleichzeitig zusätzliche Funktionen wie die automatische Speicherbereinigung oder die Überprüfung von Grenzen bereitstellt
Die Frage passt wirklich in den Titel: Ich bin gespannt, was der technische Grund für diesen Unterschied ist, aber auch die Gründe? std::shared_ptr<void> sharedToVoid; // legal; std::unique_ptr<void> uniqueToVoid; // ill-formed;
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 …
Ich habe auto_ptrgehört, dass es in C ++ 11 veraltet ist. Was ist der Grund dafür? Auch ich würde gerne den Unterschied zwischen auto_ptrund kennen shared_ptr.
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<bar>& ptr); aber das funktioniert nicht, wenn ich versuche, so etwas zu tun int foo(const shared_ptr<Base>& ptr); …
Herr Lidström und ich hatten einen Streit :) Die Behauptung von Herrn Lidström ist, dass für ein Konstrukt shared_ptr<Base> 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 : …
Dies ist eine zweiteilige Frage, die sich mit der Atomizität von std::shared_ptr: 1. Soweit ich das beurteilen kann, std::shared_ptrist dies der einzige intelligente Zeiger <memory>, der atomar ist. Ich frage mich, ob es eine nicht-atomare Version von std::shared_ptrgibt (ich kann nichts darin sehen <memory>, daher bin ich auch offen für …
Hallo, ich habe heute eine Frage zum Einfügen verschiedener Objekttypen in dasselbe Vektorarray gestellt. Mein Code in dieser Frage war gate* G[1000]; G[0] = new ANDgate() ; G[1] = new ORgate; //gate is a class inherited by ANDgate and ORgate classes class gate { ..... ...... virtual void Run() { …
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?
class B; class A { public: A () : m_b(new B()) { } shared_ptr<B> GimmeB () { return m_b; } private: shared_ptr<B> m_b; }; Nehmen wir an, B ist eine Klasse, die semantisch nicht außerhalb der Lebensdauer von A existieren sollte, dh es macht absolut keinen Sinn, dass B für …
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 …
Ich bin nicht sehr daran gewöhnt weak_ptrund stehe vor einer ziemlich verwirrenden Situation. Ich verwende Intel XE 2019 Composer Update 5 ( Paket 2019.5.281 ) in Kombination mit Visual Studio 2019 ver. 16.2.5 . Ich kompiliere in 64-Bit. Ich benutze das Standard C ++ 17 . Hier ist der Code …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.