If I assume your design is viable (it smells funny with zero context, but may well be correct), boost::shared_ptr might be the way to go.
http://www.boost.org/doc/libs/1_38_0/libs/smart_ptr/smart_ptr.htm
Edit: switch to ::shared_ptr from ::weak_ptr, because I am an idiot...