Preguntas etiquetadas con shared-ptr

Referencia a la clase de puntero inteligente contada que implementa la propiedad compartida

276
Diferencia en make_shared y normal shared_ptr en C ++

std::shared_ptr<Object> p1 = std::make_shared<Object>("foo"); std::shared_ptr<Object> p2(new Object("foo")); Muchas publicaciones de google y stackoverflow están ahí, pero no puedo entender por qué make_sharedes más eficiente que usarlo directamente shared_ptr. ¿Alguien puede...

172
shared_ptr a una matriz: ¿debería usarse?

Solo una pequeña consulta al respecto shared_ptr. ¿Es una buena práctica usar shared_ptrseñalar a una matriz? Por ejemplo, shared_ptr<int> sp(new int[10]); Si no, ¿por qué no? Una razón por la que ya estoy al tanto es que uno no puede aumentar / disminuir el shared_ptr. Por lo tanto, no se...

129
¿Por qué funciona std :: shared_ptr <void>?

Encontré algo de código usando std :: shared_ptr para realizar una limpieza arbitraria al apagar. Al principio pensé que este código no podría funcionar, pero luego intenté lo siguiente: #include <memory> #include <iostream> #include <vector> class test { public: test() {...

106
std :: shared_ptr seguridad del hilo explicada

Estoy leyendo http://gcc.gnu.org/onlinedocs/libstdc++/manual/shared_ptr.html y algunos problemas de seguridad de los subprocesos aún no están claros para mí: Standard garantiza que el recuento de referencias se maneja con seguridad para subprocesos y es independiente de la plataforma,...

103
¿Dónde está shared_ptr?

Estoy tan frustrado en este momento después de varias horas tratando de encontrar dónde se encuentra shared_ptr. Ninguno de los ejemplos que veo muestra un código completo para incluir los encabezados shared_ptr(y en funcionamiento). Simplemente diciendo std, ¡ tr1y <memory>no está ayudando...

101
std :: shared_ptr de esto

Actualmente estoy tratando de aprender a usar punteros inteligentes. Sin embargo, mientras hacía algunos experimentos, descubrí la siguiente situación para la que no pude encontrar una solución satisfactoria: Imagina que tienes un objeto de clase A que es padre de un objeto de clase B (el hijo),...

88
Pasar punteros compartidos como argumentos

Si declaro un objeto envuelto en un puntero compartido: std::shared_ptr<myClass> myClassObject(new myClass()); luego quería pasarlo como argumento a un método: DoSomething(myClassObject); //the called method void DoSomething(std::shared_ptr<myClass> arg1) { arg1->someField =...

82
Ejemplo para usar shared_ptr?

Hola, hoy hice una pregunta sobre cómo insertar diferentes tipos de objetos en la misma matriz de vectores y mi código en esa pregunta fue gate* G[1000]; G[0] = new ANDgate() ; G[1] = new ORgate; //gate is a class inherited by ANDgate and ORgate classes class gate { ..... ...... virtual...