title: C++: Design objects to model unique items in a system
body: <p>I would like to model a group of items (people) where each individual has a set of unique characteristics... If I pass around my objects willy-nilly then copy constructors, etc. will cause my objects to diverge such that Object A will eventually have multiple different versions floating around, A` returned from method X, A`` returned from method Y and so forth. Which design pattern will help me ensure that if I pass around objects to various functions, that I'll be sure to always be acting on the unique representation of each given object. Thanks.</p>