Junior — Middle
Explique el mecanismo de funcionamiento del puntero inteligente std::unique_ptr en C++ y sus características
sobes.tech AI
Respuesta de la IA
std::unique_ptr — es un puntero inteligente en C++ que garantiza la propiedad exclusiva de un objeto. Sus características:
- Propiedad exclusiva: solo un
unique_ptrpuede poseer el objeto en un momento dado. - Liberación automática de memoria: al destruirse, el
unique_ptrllama al destructor del objeto y libera la memoria. - No se puede copiar, pero sí mover (
std::move), lo que permite transferir la propiedad.
Ejemplo de uso:
#include <memory>
#include <iostream>
int main() {
std::unique_ptr<int> ptr1 = std::make_unique<int>(10);
std::cout << *ptr1 << std::endl; // muestra 10
// std::unique_ptr<int> ptr2 = ptr1; // Error: la copia está prohibida
std::unique_ptr<int> ptr2 = std::move(ptr1); // Transferencia de propiedad
if (!ptr1) {
std::cout << "ptr1 ya no posee el objeto" << std::endl;
}
std::cout << *ptr2 << std::endl; // muestra 10
}
De esta forma, unique_ptr ayuda a evitar fugas de memoria y garantiza la seguridad en la gestión de recursos.