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.
main.cpp
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.
main.cpp
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.
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
solution.cpp
¡Gracias por tus comentarios!
single
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Awesome!
Completion rate improved to 5.56Awesome!
Completion rate improved to 5.56
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.
main.cpp
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.
main.cpp
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.
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
solution.cpp
¡Gracias por tus comentarios!
single
Awesome!
Completion rate improved to 5.56
Moviendo Punteros Únicos
Desliza para mostrar el menú
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.
main.cpp
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.
main.cpp
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.
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
solution.cpp
¡Gracias por tus comentarios!