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
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
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
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
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,
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,
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
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
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
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
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
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
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
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 =
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
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
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
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,
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];
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
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,
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
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 {...} ... };
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>
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.
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
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
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,
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
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;
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
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):
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:
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
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
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:
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
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
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
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
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
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
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 "
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.
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,
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
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
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
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
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
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