Tag: smart-pointers

Ein abstrakter Datentyp, der simuliert einen Zeiger, während die Bereitstellung zusätzlicher Funktionen, wie die automatische garbage collection oder bounds checking

unique_ptr operator=

Anzahl der Antworten 2 Antworten
std::unique_ptr<int> ptr; ptr = new int[3]; //error error C2679: binärer '=' : kein operator gefunden, die einen rechten Operanden vom Typ 'int *' (oder es gibt keine akzeptable Konvertierung) Warum dies nicht kompiliert? Wie kann ich die

shared_ptr - pass by value vs. pass by reference

Anzahl der Antworten 3 Antworten
Angenommen ich habe: typedef boost::shared_ptr<Event> EventPtr; In einem thread, erstelle ich eine Event und senden es ab zu erhalten ausgelöst: Event* event = new Event(); EventPtr eventPtr(event); EventDispatcher::dispatch(eventPtr); //pseudocode Den EventDispatcher erhält eine EventPtr und fügt es

enable_shared_from_this (c++0x): was mache ich falsch?

Anzahl der Antworten 2 Antworten
Ich bin nur spielte, um mit den smart-Pointer in der kommenden neuen c++ - standard. Aber ich kann das nicht begreifen, wird die Nutzung der shared_from_this Funktion. Hier ist, was ich habe: #include <iostream> #include <memory> class

C++11 Von Smart-Pointer-Richtlinien

Anzahl der Antworten 1 Antworten
Wie ich es verstehe, in der die aktuelle Spezifikation der C++11 sollte man verwenden: std::unique_ptr<> für einen Besitzer (die meiste Zeit) std::shared_ptr<> nur, wenn es mehrere Eigentümer in azyklischen Struktur std::weak_ptr<> sparsam, nur wenn es gibt Zyklen,

Schwache/Starke Referenz Zeiger Beziehung

Anzahl der Antworten 1 Antworten
Habe ich schon versucht zu schreiben, meine eigene schwach/stark Zeiger ist, aber ich bin nicht klar, das Verständnis der Beziehung. Alles, was ich scheinen, zu stoßen, macht es nicht und klar und ziemlich oft ein doc contridict,

Warum habe ich erhalten: "der Versuch zum Verweis auf eine gelöschte Funktion" Fehler nach dem hinzufügen eines Vektors mit einzigartigen Zeiger auf meiner header-Datei?

Anzahl der Antworten 2 Antworten
Lernen C++ ich bin ein Spiel Programmieren. In diesem Spiel können zwei Spieler. Diejenigen Spieler, die in der Lage sind, miteinander zu verbinden mit sockets. Nach dem hinzufügen eines Vektors mit eindeutiger Zeiger auf das player-header, bekam

Warum ist shared_ptr<void> legal, während unique_ptr<void> ist schlecht ausgebildet?

Anzahl der Antworten 2 Antworten
Die Frage passt wirklich in den Titel: ich bin neugierig zu wissen, was ist der technische Grund für diesen Unterschied, sondern auch die Begründung ? std::shared_ptr<void> sharedToVoid; //legal; std::unique_ptr<void> uniqueToVoid; //ill-formed; InformationsquelleAutor Ad N | 2016-09-02

Beste Weg, um löschen Sie einen std::unique_ptr von einem Vektor mit einem raw-pointer?

Anzahl der Antworten 3 Antworten
Also ich habe einen vector so: std::vector<std::unique_ptr<SomeClass>> myVector; Dann habe ich noch eine Vektor enthält raw-Pointer SomeClass: std::vector<SomeClass*> myOtherVector; Wenn es ein element innerhalb myOtherVector wird es auch im inneren myVector, so will ich gehen durch jedes

shared_ptr und Referenzen in C++

Anzahl der Antworten 4 Antworten
Referenzen in C++ sind conveneint zu konstruieren, die es uns ermöglichen, vereinfachen Sie den folgenden C-code: f(object *p){ //do something } int main(){ object* p = (object*) calloc(sizeof(object)); f(p); } zu f(object& o){ //do something } int

RAII vs. Garbage Collector

Anzahl der Antworten 12 Antworten
Kürzlich sah ich einen tollen Vortrag von Herb Sutter über "Leck-Freien C++ - ..." bei CppCon 2016, wo er Sprach über die Verwendung von smart-Pointer implementieren RAII (Resource acquisition is initialization) - Konzepte und wie Sie zu

Was ist die Verwendung von CComPtr über CComQIPtr in COM?

Anzahl der Antworten 5 Antworten
Kann irgend jemand erklären, Was ist die Verwendung von CComPtr über CComQIPtr in COM? CComPtr<ISampleInterface> Sample1; CComQIPtr<ISampleInterface> Sample2; InformationsquelleAutor Ramesh | 2011-07-27

Nicht get() brechen die Idee, die hinter std::unique_ptr?

Anzahl der Antworten 4 Antworten
Beispiel-code: #include<memory> #include<iostream> int main() { std::unique_ptr<int> intPtr{new int(3)}; int* myPtr = intPtr.get(); *myPtr = 4; std::cout<<"New result for intPtr: "<< *intPtr.get()<<std::endl; } Dies nicht von einer Niederlage der ganze Zweck hinter std::unique_ptr ? Warum ist dies

std::shared_ptr der abstrakten Klasse abgeleitete Klasse instanziieren

Anzahl der Antworten 3 Antworten
Ich versuche, mit std::shared_ptr, aber ich bin nicht sicher, ob ich benutzen kann shared_ptr für eine abstrakte Klasse, und rufen Sie eine abgeleitete Klasse von dieser smart-pointer. Hier ist der code, den ich derzeit IExecute *ppCIExecuteExecuteOperation =

Wie make_shared eine abgeleitete Klasse?

Anzahl der Antworten 1 Antworten
Ich will das make_shared<T> Funktion mit einer abgeleiteten Klasse, wie unten class Base { public: typedef std::shared_ptr<Base> Ptr; }; class Derived : public Base {}; Base::Ptr myPtr = std::make_shared(/* Derived() */ ); Wie kann ich feststellen, make_shared

Einige Fragen über die Verwendung CComPtr (wenn verwenden Sie die Release()? Kann ich wieder CComPtr?, ...)

Anzahl der Antworten 1 Antworten
Ich schreiben add-on für Internet Explorer(BHO) und ich bin mit CComPtr smart Pointer. Ich Frage mich: Wann sollte ich CComPtr.Release () - Funktion? In diesem diese link es ist verwendet, um release browser-Objekt. Wo sonst sollte ich

Wie gehen deleter zu make_shared?

Anzahl der Antworten 5 Antworten
Seit C++11, da von mehreren Gründen, tendieren Entwickler dazu, den Einsatz von smart-pointer-Klassen für die dynamische Lebenszeit von Objekten. Und mit diesen neuen smart-pointer-Klassen, - standards, auch empfehlen nicht die Verwendung von Operatoren wie new statt, die

Löschen Vektor von Zeigern

Anzahl der Antworten 4 Antworten
Brauche ich zum erstellen von Zeigern von Instanzen einer Klasse sind, und das Programm nicht weiß, bei der Kompilierung, wie viele Zeiger werde ich erstellen. Für die Löschung, ich erwäge das speichern der Zeiger in einem Vektor,

Ist es richtig, null zurückgeben shared_ptr?

Anzahl der Antworten 1 Antworten
Gibt es zum Beispiel eine Funktion, die feststellt, ein Objekt und gibt shared_ptr, wenn ein Objekt gefunden wird, und muss irgendwie zeigen, dass kein Objekt gefunden wurde. std::vector<std::shared_ptr> Storage::objects; std::shared_ptr<Object> Storage::findObject() { if (objects.find) { return objects[x];

Funktioniert der C++11-Wrapper für dynamisch zugewiesenen arrays wie Boost ' s scoped_array?

Anzahl der Antworten 2 Antworten
Ich oft benötigen, um mit dynamisch zugewiesenen arrays in C++, und daher verlassen Sie sich auf Boost für scoped_array, shared_array, und dergleichen. Nach der Lektüre durch Stroustrup ' s C++11 FAQ und die C++11 Referenz Wiki konnte

Welche Art von Zeiger verwende ich Wann?

Anzahl der Antworten 4 Antworten
Ok, also das Letzte mal schrieb ich " C++ für ein Leben std::auto_ptr war alle std-lib zur Verfügung hatte, und boost::shared_ptr war in aller Munde. Ich sah nie wirklich in die anderen smart-pointer-Typen-boost zur Verfügung. Ich verstehe,

shared_ptr Magie :)

Anzahl der Antworten 3 Antworten
Herr Lidström und ich hatte ein argument 🙂 Herr Lidström ist der Anspruch, dass ein Konstrukt shared_ptr<Base> p(new Derived); erfordert keine Basis zu haben, die einen virtuellen Destruktor: Armen Tsirunyan: "Wirklich? Wird die shared_ptr bereinigen, richtig? Könnten

Wie kann ich kovariante Rückgabetypen mit smart Pointer?

Anzahl der Antworten 6 Antworten
Habe ich code wie diesen: class RetInterface {...} class Ret1: public RetInterface {...} class AInterface { public: virtual boost::shared_ptr<RetInterface> get_r() const = 0; ... }; class A1: public AInterface { public: boost::shared_ptr<Ret1> get_r() const {...} ... };

Was ist ein smart-pointer und Wann sollte ich Sie verwenden?

Anzahl der Antworten 13 Antworten
Was ist ein smart-pointer und Wann sollte ich Sie verwenden? Überprüfen Sie heraus diese Frage:<br> Smart Pointer: Oder wem gehört Sie baby Beachten Sie, dass die Implementierung von std::auto_ptr in Visual Studio 2005 ist schrecklich gebrochen. <br>http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=98871<br>

Kann Google Mock eine Methode mit einem smart-pointer zurück geben?

Anzahl der Antworten 3 Antworten
Ich habe eine Fabrik, die gibt einen smart-pointer. Unabhängig davon, was intelligente Zeiger, die ich benutze, ich bekomme keine Google-Mock mock die factory-Methode. Dem mock-Objekt ist die Implementierung einer rein abstrakten Schnittstelle, wo alle Methoden sind virtual.

"Downcasting" unique_ptr<Base> unique_ptr<Abgeleitet>

Anzahl der Antworten 1 Antworten
Habe ich eine Reihe von Fabriken, die Rückkehr unique_ptr<Base>. Unter der Haube, obwohl, die Zeiger auf verschiedene abgeleitete Typen, ich.e unique_ptr<Derived>, unique_ptr<DerivedA>, unique_ptr<DerivedB>etc. Gegeben DerivedA : Derived und Derived : Base hätten wir: unique_ptr<Base> DerivedAFactory() { return

Ist es möglich, verwenden Sie eine C++ intelligente Zeiger zusammen mit C malloc?

Anzahl der Antworten 9 Antworten
Einige meiner code noch verwendet malloc statt new. Der Grund ist, weil ich fürchte, zu verwenden new weil es wirft Ausnahme, eher als die Rückkehr NULL - das kann ich leicht überprüfen. Verpackung jeder Aufruf new im

Welche Art von Zeiger verwende ich Wann?

Anzahl der Antworten 4 Antworten
Ok, also das Letzte mal schrieb ich " C++ für ein Leben std::auto_ptr war alle std-lib zur Verfügung hatte, und boost::shared_ptr war in aller Munde. Ich sah nie wirklich in die anderen smart-pointer-Typen-boost zur Verfügung. Ich verstehe,

C++ Verwenden, der die Funktion gelöscht Fehler

Anzahl der Antworten 3 Antworten
Ich bin immer eine Menge für die Verwendung der Funktion gelöscht Fehler. Ich habe gerade den Zeiger der weighted_pointer zu unique_ptr. Aber ich kann nicht erkennen, warum ich bin immer der Fehler, irgendein Tipp? Den likeatree ist

C++11-Vektor, der die smart-pointer

Anzahl der Antworten 1 Antworten
Nehmen wir an, wir haben die folgenden codes. Wir haben folgende Klassen Tier als AbstractClass Hund und Vogel was ist Unterklasse von Animal Zoo hält alle Tiere _ class Animal { public: Animal(); void HasWings() = 0;

soll ich Sie löschen smart-pointer manuell?

Anzahl der Antworten 4 Antworten
Könnte dies eine dumme Frage, aber ich bin einfach nicht sicher über die Antwort. Der folgende code liest die Datei, und für jede Zeile der Datei, einem smart-pointer wird erstellt, indem Sie "neu". Wenn die smart-pointer werden

Eine einfache Implementierung der Smart-Pointer-Klasse

Anzahl der Antworten 4 Antworten
Im Buch C++ Primer 13.5.1, setzen es ein Smart-Pointer-Klasse mit einem Verwenden-Count-Klasse. Ihre Umsetzung ist wie folgt: Verwenden-Count-Klasse //private class for use by HasPtr only class U_Ptr { friend class HasPtr; int *ip; size_t use; U_Ptr(int *p):

Einfaches reference counting: smart Pointer

Anzahl der Antworten 2 Antworten
Ich würde gerne implementieren Sie eine einfache Referenz zählen die Verwendung von smart-Pointern. Die variable pointer stellt Zeiger auf die gespeicherten Objekt reference_count repräsentiert die Anzahl der Kopien des Objekts. wenn wir initialisieren ein Objekt mit NULL:

C++11 smart Pointer und Polymorphismus

Anzahl der Antworten 2 Antworten
Bin ich umschreiben, die eine Anwendung mit c++11 smart-Pointer. Ich habe eine base-Klasse: class A {}; Und eine abgeleitete Klasse: class B : public A { public: int b; }; Habe ich eine andere Klasse mit einem

Vorteile/Nachteile von auto-Pointern

Anzahl der Antworten 9 Antworten
Was sind die Vorteile und Nachteile der Verwendung von auto-Pointer (auto_ptr), im Vergleich zu normalen Zeigern? Ich habe gehört, es funktioniert die automatische Freigabe von Speicher, aber wie kommt es, das es nicht oft benutzt? Das Gesetz

smart Pointer funktioniert nicht mit Android NDK r8

Anzahl der Antworten 2 Antworten
Ich kann nicht herausfinden, wie zu verwenden shared Pointer in mein Android-Projekt. Ich bin mit der neuesten Eclipse-ADT, die auf Mac OS X mit dem Android NDK r8d. Hier ist, was ist in meinem Android.mk - Datei:

Wie führen Sie ein dynamic_cast mit einem unique_ptr?

Anzahl der Antworten 3 Antworten
Ich habe eine Klassen-Hierarchie wie folgt: class BaseSession : public boost::enable_shared_from_this<BaseSession> class DerivedSessionA : public BaseSession class DerivedSessionB : public BaseSession Innerhalb der abgeleiteten Klasse Funktionen, die ich regelmäßig aufrufen von Funktionen wie diese: Func(boost::dynamic_pointer_cast<DerivedSessionA>(shared_from_this())); Da ich

Sollte ich mit C++11 emplace_back mit Zeigern containters?

Anzahl der Antworten 2 Antworten
Mit einer üblichen Base -> Abgeleitete Hierarchie, wie: class Fruit { ... }; class Pear : Fruit { ... }; class Tomato : Fruit { ... }; std::vector<Fruit*> m_fruits; Hat es Sinn (e.g: es hat eine bessere

Wie gebe ich die smart-Pointer in Funktionen?

Anzahl der Antworten 3 Antworten
Bei der übergabe von Objekten an Funktionen, die selben Regeln gelten für smart-Pointer auf andere Objekte enthalten dynamische Speicher? Wenn ich den pass, zum Beispiel eine std::vector<std::string> in eine Funktion, die ich immer sollten Sie die folgenden

Bewegen Eigentum von std::shared_ptr std::unique_ptr

Anzahl der Antworten 1 Antworten
Habe ich eine Klasse A hat ein Feld vom Typ std::unique_ptr: class A { public: std::unique_ptr pointer; //class body }; Und irgendwo im code, bin ich mit paar std::shared_ptrs, die auf das gleiche Objekt zeigen. Nun, was

Wie verwenden von Boost ist intrusive_ptr effektiv?

Anzahl der Antworten 2 Antworten
Handbuch Unref Ich habe ein Problem mit Erhöhung der intrusive pointer. Es ist boolean-Konvertierung operator überprüft x.get() != 0. Aber den code unten scheitert an den markierten Punkt. Warum ist das der Fall? Ich vermute, dass ich

Wie die Zuweisung einer Adresse zu einem bestehenden Objekt zu einem smart-pointer?

Anzahl der Antworten 6 Antworten
#include <memory> class bar{}; void foo(bar &object){ std::unique_ptr<bar> pointer = &object; } Will ich weisen Sie eine Adresse des Objekts, auf den Zeiger. Der obige code natürlich nicht kompilieren, da die Rechte Seite des zuweisungsoperators muss eine

Wie kompilieren Sie c++11-code mit dem android ndk und eclipse?

Anzahl der Antworten 2 Antworten
Ich bin mit android NDK r8d und eclipse Juno. Ich bin versucht zu kompilieren von C++ - code verwendet C++11 Kram wie mutexlock_guardshared_ptr usw. in eine native android-Projekt in eclipse. Bekomme ich Fehler wie: "Fehler:" shared_ptr "

Was ist die beste smart-pointer return-type für eine factory-Funktion?

Anzahl der Antworten 4 Antworten
Bezüglich smart-Pointer und der neuen C++11/14 features, Frage ich mich, was die best-practice-und Rückgabewerte der Funktion parameter-Typen wäre für Klassen, die diese Ausstattung: Einer factory-Funktion (außerhalb der Klasse) schafft Objekte und gibt diese an Nutzer der Klasse.

Welche Art von Zeiger verwende ich Wann?

Anzahl der Antworten 4 Antworten
Ok, also das Letzte mal schrieb ich " C++ für ein Leben std::auto_ptr war alle std-lib zur Verfügung hatte, und boost::shared_ptr war in aller Munde. Ich sah nie wirklich in die anderen smart-pointer-Typen-boost zur Verfügung. Ich verstehe,

shared_ptr vs scoped_ptr

Anzahl der Antworten 5 Antworten
scoped_ptr ist, nicht kopieren kann und gelöscht wird, aus der Umfang. So ist es irgendwie eingeschränkt shared_ptr. So scheint neben den Fällen, wenn Sie wirklich brauchen, um zu beschränken, bei der der Kopiervorgang shared_ptr besser zu bedienen

unique_ptr und Polymorphismus

Anzahl der Antworten 4 Antworten
Ich habe einige code, der nutzt derzeit die raw-Pointer, und das will ich ändern, um die smart-Pointer. Dies hilft, bereinigen Sie den code in verschiedener Weise. Ja, ich habe factory-Methoden, die Objekte zurückgeben und Ihre der Anrufer

Vektor-shared Pointer , memory-Probleme nach dem löschen der Vektor

Anzahl der Antworten 3 Antworten
Merkte ich, dass nach dem Aufruf vector.clear() die shared Pointer, der Destruktor des Objekts, welches durch shared_ptr ist nicht freigegeben. Code-Beispiel kann unten gesehen werden . Auch vector.clear() aufgerufen, der Destruktor wird aufgerufen, nachdem shared pointer sprengt

Warum auto_ptr ist veraltet?

Anzahl der Antworten 5 Antworten
Hörte ich auto_ptr ist veraltet wird in C++11. Was ist der Grund dafür? Ich würde auch gerne wissen, der Unterschied zwischen auto_ptr und shared_ptr. InformationsquelleAutor der Frage brett | 2010-09-13

Warum C++ - Bibliotheken und frameworks verwenden Sie niemals smart-Pointer?

Anzahl der Antworten 8 Antworten
Lese ich in ein paar Artikeln, die raw-Pointer sollte fast nie sein verwendet. Stattdessen sollten Sie immer verpackt in intelligenten Zeigern, ob scoped oder shared Pointer. Jedoch, bemerkte ich, dass frameworks wie Qt, wxWidgets und Bibliotheken wie

Wie man Speicherverlust mit shared_ptr vermeidet?

Anzahl der Antworten 1 Antworten
Betrachten Sie den folgenden code. using boost::shared_ptr; struct B; struct A{ ~A() { std::cout << "~A" << std::endl; } shared_ptr<B> b; }; struct B { ~B() { std::cout << "~B" << std::endl; } shared_ptr<A> a; }; int