C++: Punteros inteligentes

Por qué usar punteros inteligentes

Prueba ahora LinkedIn Learning sin cargo y sin compromiso.

Prueba gratis Mostrar modalidades de suscripción
Un puntero inteligente es un encapsulamiento alrededor de un puntero estándar que añade la funcionalidad necesaria para gestionar mejor la memoria. Los punteros inteligentes se añadieron al estándar en C++11.
02:29

Transcripción

En C++, un puntero inteligente, es una plantilla de clase que, gracias a las sobrecargas de operadores, ofrece la funcionalidad de un puntero. Con sus características adicionales, permite una gestión mejorada y más segura de la memoria. El puntero inteligente es un encapsulamiento alrededor de un simple puntero estándar de C; con su diseño, ofrece estas ventajas y trabaja de forma similar a un puntero estándar. Para demostrarlo, vamos a ver esta firma de función. Sé que esta función devuelve un puntero, ¿qué tengo que hacer con este puntero cuando he terminado con él? ¿Es estático, o está asignado? ¿Debería liberar la memoria? ¿Utilizo "delete" o "free"? ¿Debería esperar que alguna otra función libere la memoria? No tengo forma de saberlo. Estos problemas de programación causan pérdidas de memoria; por otro lado, con esta función sé qué tengo que hacer. Esta función devuelve un puntero único, y sé algunas cosas sobre esto. Sé que es la única copia de este puntero. No se puede copiar. Sé que puedo destruir de forma segura sus recursos asociados llamando a "reset" sobre el puntero. Además, puedo transferir su propiedad moviéndolo. Esta función devuelve un puntero compartido; así, puedo hacer copias del puntero y borrarlas tantas veces como quiera. Los recursos se destruirán de forma automática y segura cuando se borren o salgan del ámbito todas las copias. La clase de puntero compartido gestiona los recursos, así que no me preocupo por esto. Las clases de punteros inteligentes se definen en la cabecera de memoria, así que tendrás que hacer un "include memory" para usarlas. Los punteros inteligentes se añadieron en C++11, y en C++14 hay algunas mejoras. Funcionan en todos los compiladores modernos, como Microsoft Visual C++ y el compilador Clang LLVM, que se utiliza en los Mac de Apple. Hay algunas diferencias de implementación que iré comentando a lo largo del curso. Los punteros inteligentes son fáciles de usar y muy potentes, a menos que tengas que mantener la compatibilidad con compiladores antiguos que no los admiten, no hay ninguna razón para no usarlos en la mayoría de los casos.

C++: Punteros inteligentes

Conoce los punteros inteligentes, un componente fundamental en C++, que garantizan que tanto la memoria como otros recursos se asignen de forma adecuada y eficaz.

25 min (7 Videos)
Actualmente no hay comentarios.
 
Software:
Fecha de publicación:14/12/2016

Este curso video2brain está disponible como descarga y para ser visualizado online. ¡Pero no hace falta que decidas entre las dos opciones! Al comprar el curso, disfrutarás de ambas posibilidades.

La descarga te permite ver las lecciones sin estar conectado/a a internet y supone una navegación fácil y ágil entre capítulo y capítulo. Si vas a trabajar en diferentes ordenadores o si no quieres descargarte el curso completo, entra en la web con tus datos de acceso y disfruta directamente de tus vídeos online. Te deseamos que disfrutes de este curso y te resulte de mucha utilidad.

Estamos a tu disposición si tienes cualquier tipo de duda o pregunta.