Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Introducción a los Punteros Débiles | Punteros Débiles
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
Introducción a los Punteros Débiles

El puntero inteligente std::weak_ptr no posee el objeto al que apunta. Esto esencialmente significa que un puntero débil no incrementa el conteo de referencias del objeto.

Un std::weak_ptr permite el acceso a un objeto gestionado por punteros compartidos sin extender su tiempo de vida. Si todos los punteros compartidos salen del ámbito, el objeto se elimina, incluso si todavía existe un puntero débil. Esto es útil para observar objetos compartidos sin impedir su desasignación.

cpp

main

copy
12345678910111213141516171819
#include <iostream> #include <memory> struct Resource { Resource() { std::cout << "Resource created\n"; } ~Resource() { std::cout << "Resource destroyed\n"; } }; int main() { std::shared_ptr<Resource> sp1 = std::make_shared<Resource>(); std::weak_ptr<Resource> wp = sp1; // Weak pointer does not increase ref count std::cout << "Shared pointer going out of scope...\n"; sp1.reset(); // Resource is deleted if (wp.expired()) std::cout << "Resource no longer exists\n"; }

El Ciclo de Vida de un Puntero Débil

Los punteros débiles son observadores que pueden acceder a un objeto pero no extienden su vida útil.

Su ciclo de vida depende de los punteros compartidos. Cuando el último puntero compartido es destruido, el objeto es desasignado, y el puntero débil expira. Todavía existe pero se vuelve vacío.

question mark

Si 10 punteros compartidos y 1 puntero débil hacen referencia a un recurso, ¿qué sucede cuando todos los punteros compartidos salen del ámbito?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 4. Capítulo 1
Lamentamos que algo salió mal. ¿Qué pasó?
some-alt