Consider the following code:
class A { B* b; // an A object owns a B object A() : b(NULL) { } // we don\'t know what b will be when constructing A
Just have a pile of previously used Bs, and re-use them.