Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Moviendo Punteros Únicos | Punteros Únicos
C++ Smart Pointers
course content

Contenido del Curso

C++ Smart Pointers

C++ Smart Pointers

1. Introducción a los Punteros Inteligentes
2. Punteros Únicos
3. Punteros Compartidos
4. Punteros Débiles
5. Temas Avanzados

book
Moviendo Punteros Únicos

Copia No Permitida

Un std::unique_ptr es un puntero inteligente que gestiona un objeto asignado dinámicamente y asegura su eliminación adecuada cuando sale del ámbito. Tiene propiedad exclusiva del objeto que gestiona, lo que significa que no hay dos std::unique_ptr que puedan poseer el mismo objeto simultáneamente.

cpp

main

copy
123456789
#include <iostream> #include <memory> int main() { std::unique_ptr<int> first_unique_pointer = std::make_unique<int>(42); // This will cause a compilation error: copying is not allowed std::unique_ptr<int> second_unique_pointer = first_unique_pointer; }

Moviendo un Puntero Único

Aunque la copia no está permitida, puedes transferir la propiedad del objeto usando std::move. Esto mueve el recurso de un std::unique_ptr a otro, dejando el puntero original vacío.

cpp

main

copy
123456789101112131415
#include <iostream> #include <memory> int main() { std::unique_ptr<int> first_unique_pointer = std::make_unique<int>(42); // Transferring ownership using std::move std::unique_ptr<int> second_unique_pointer = std::move(first_unique_pointer); if (!first_unique_pointer) std::cout << "first_unique_pointer is now empty.\n"; std::cout << "second_unique_pointer owns the value: " << *second_unique_pointer << '\n'; }

Cuando usas std::move, la propiedad del objeto se transfiere de un puntero único a otro. Después de esto, el puntero original ya no posee el objeto, y el nuevo puntero se convierte en su propietario.

Tarea

Swipe to start coding

Completa el siguiente código de manera que la propiedad del entero asignado dinámicamente (con valor 42) se transfiera de manera segura de ptr1 a ptr2.

Solución

cpp

solution

Switch to desktopCambia al escritorio para practicar en el mundo realContinúe desde donde se encuentra utilizando una de las siguientes opciones
¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 2. Capítulo 2
toggle bottom row

book
Moviendo Punteros Únicos

Copia No Permitida

Un std::unique_ptr es un puntero inteligente que gestiona un objeto asignado dinámicamente y asegura su eliminación adecuada cuando sale del ámbito. Tiene propiedad exclusiva del objeto que gestiona, lo que significa que no hay dos std::unique_ptr que puedan poseer el mismo objeto simultáneamente.

cpp

main

copy
123456789
#include <iostream> #include <memory> int main() { std::unique_ptr<int> first_unique_pointer = std::make_unique<int>(42); // This will cause a compilation error: copying is not allowed std::unique_ptr<int> second_unique_pointer = first_unique_pointer; }

Moviendo un Puntero Único

Aunque la copia no está permitida, puedes transferir la propiedad del objeto usando std::move. Esto mueve el recurso de un std::unique_ptr a otro, dejando el puntero original vacío.

cpp

main

copy
123456789101112131415
#include <iostream> #include <memory> int main() { std::unique_ptr<int> first_unique_pointer = std::make_unique<int>(42); // Transferring ownership using std::move std::unique_ptr<int> second_unique_pointer = std::move(first_unique_pointer); if (!first_unique_pointer) std::cout << "first_unique_pointer is now empty.\n"; std::cout << "second_unique_pointer owns the value: " << *second_unique_pointer << '\n'; }

Cuando usas std::move, la propiedad del objeto se transfiere de un puntero único a otro. Después de esto, el puntero original ya no posee el objeto, y el nuevo puntero se convierte en su propietario.

Tarea

Swipe to start coding

Completa el siguiente código de manera que la propiedad del entero asignado dinámicamente (con valor 42) se transfiera de manera segura de ptr1 a ptr2.

Solución

cpp

solution

Switch to desktopCambia al escritorio para practicar en el mundo realContinúe desde donde se encuentra utilizando una de las siguientes opciones
¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 2. Capítulo 2
Switch to desktopCambia al escritorio para practicar en el mundo realContinúe desde donde se encuentra utilizando una de las siguientes opciones
Lamentamos que algo salió mal. ¿Qué pasó?
some-alt