Bloomberg LP Interview Question Software Engineer / Developers
0of 0 voteswhy do we need weak_ptr? give an example by code!
I didn't answer the question well.
I am really confused about weak_ptr. weak_ptr is an observer of shared_ptr, meaning that we always need shared_ptr in order to use weak_ptr. but in cyclic case, we don't use shared_ptr for one of the object, then in this case how can we use weak_ptr without shared_ptr to break cycle?
Country: United States
Interview Type: In-Person

We need to use weak_ptr to avoid cycles in data structures. weak_ptr points to a resource which is managed by one or more shared_ptr. As the weak_ptr does not effects the resource reference count(weak_ptr holds weak or non-owning reference) so when the last shared_ptr object that manages that resource is destroyed the resource will be freed even if the resource is pointed by a weak_ptr. For the cycle problem think about a circular link list. Where, if every node holds the shared_ptr which owns the next node will never be freed because none of the reference count can be zero. To avoid this problem, if the last node hold weak_ptr object of the first node, then the first node can be destroyed even it is pointed from the last node.
- Palash on April 07, 2012 Edit | Flag Reply