Contenido del Curso
C++ Smart Pointers
C++ Smart Pointers
Creación y Compartición de Shared Pointers
El Enfoque Recomendado
La forma recomendada de crear un puntero compartido es a través de la función std::make_shared
. Este enfoque es generalmente más eficiente y expresivo en comparación con el uso de new
. Asigna memoria para el objeto y el bloque de control (conteo de referencias) en un solo paso. Por ejemplo:
make_shared
// Create a shared pointer to an integer std::shared_ptr<int> p_int = std::make_shared<int>(42);
La línea anterior asigna un entero dinámico y también inicializa un puntero compartido a él con un conteo de referencias de uno.
El Enfoque Desalentado
También puedes crear punteros compartidos usando new
, pero este método es desalentado porque no es ni expresivo ni eficiente. La sintaxis para este enfoque requiere que pases el objeto al constructor del puntero compartido.
creating_shared_pointer
// Also creates a shared pointer to an integer std::shared_ptr<int> p_int(new int(42));
Asignando un entero dinámico y luego pasándolo al constructor del puntero compartido. Sin embargo, el bloque de control (conteo de referencias) se inicializará dentro del constructor.
Esto significa que estamos haciendo dos inicializaciones separadas, lo cual es ineficiente y se podría generar un error.
Pasando Shared Pointers
Los shared pointers están diseñados para compartir de manera segura. Vamos a explorar algunas formas en las que podemos pasarlos.
¡Gracias por tus comentarios!