Categorías: Tutoriales

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.

Manuel Ignacio López Quintero

Doctor en Ingeniería Informática especializado en Sistemas Inteligentes y Visión Artificial. Profesor y coadministrador de Linux Hispano. Para más información o para contactar con él visita su página oficial: Manuel Ignacio López Quintero.

Ver comentarios

Compartir
Publicado por
Manuel Ignacio López Quintero

Entradas recientes

DeepSeek

2 días hace

Contacto

2 semanas hace

Smart-tv mute

2 semanas hace

STEAM OS

3 semanas hace

2025

4 semanas hace

El podcast de Linux Hispano – #072 – El hardware libre debe consolidarse como el software libre

https://www.youtube.com/embed/z-xGk9c_eOw Guionista y locutor: Manuel Ignacio López Quintero.Fecha de publicación: 31 de diciembre de 2024.

1 mes hace