Volver a la página principal
jueves 20 junio 2024
3

Cómo usar std::unique_ptr en C++

El std::unique_ptr es un tipo de smart pointer que se introdujo en C++11. Su propósito es asegurar que solo un puntero tenga la propiedad de un objeto en cualquier momento, garantizando la eliminación automática del objeto cuando el std::unique_ptr sale de su ámbito.

Sintaxis y uso básico

A continuación, se muestra un ejemplo básico de cómo se puede utilizar std::unique_ptr:

#include <iostream>
#include <memory>

int main() {
    std::unique_ptr<int> ptr(new int(10));
    std::cout << *ptr << std::endl;
    return 0;
}

En este ejemplo, std::unique_ptr se utiliza para gestionar un puntero a un entero. Cuando el std::unique_ptr sale de su ámbito, el objeto al que apunta se destruye automáticamente.

Transferencia de propiedad

La propiedad del objeto gestionado por std::unique_ptr puede transferirse a otro std::unique_ptr usando la función std::move. Aquí hay un ejemplo:

#include <iostream>
#include <memory>

void process(std::unique_ptr<int> ptr) {
    std::cout << *ptr << std::endl;
}

int main() {
    std::unique_ptr<int> ptr(new int(10));
    process(std::move(ptr));
    return 0;
}

En este ejemplo, la propiedad del puntero se transfiere a la función process usando std::move. Una vez transferida, el std::unique_ptr original se establece en nullptr.

Disponibilidad

std::unique_ptr está disponible desde la versión C++11. Para usarlo, se debe incluir el encabezado <memory>.
Compartir:
Autor:
User photo

Jorge García

Fullstack developer