title: Which shared pointer should be weak pointer in a ring or a cycle
body: <p>If we have a Parent class that has a reference to a Child Class (shared pointer) and the Child Class also has a reference to the Parent Class (again with a shared pointer) we have to make one of these two smart pointers a weak pointer.</p>
  
  <p>But how we decide which of these two pointers should be a weak pointer?</p>
  
  <p>Also when a weak pointer points to 0 (when the shared count is 0), is not a situation where an object deleted when we may still need access to it? ok, i get that at least we know that the object is not there and that we should not try to access it, but is this enough?</p>