Figure 3:
Third scenario: Three (or more) smart pointers are pointing to the same resource, in which case, a helper
smart_ptr
object is conjured off the heap and used as a counter.