Punteros inteligentes en C++11

Como se ha dicho otras veces, las mejores de C++11 son evidentes. Tres ejemplos son la facilidad de convertir un entero a cadena en C++, utilizar bucles for basados en rangos o usar expresiones regulares.

Aquí os muestro, mediante un ejemplo, la facilidad con la que en C++11 se manejan los punteros, olvidándote de tener que liberar memoria:

#include <memory>  void funcion() {     int * p1 = new int; // Método tradicional para asignar memoria          /* Código donde se usa el puntero 'p1' */          delete p1; // ¡Recuerda liberar la memoria!      std::shared_ptr<int> p2(new int); // Nuevo método para asignar memoria      /* Código donde se usa el puntero 'p2' */          // ¡Y olvídate de liberar memoria! }  int main() {     funcion();         return 0; } 

El ejemplo se ha mostrado mediante el puntero inteligente shared_ptr que permite compartir el puntero, si estás seguro que el puntero es único usa unique_ptr.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *