If I have a factory, that creates an object and returns a pointer to it, what will be a better way to delete it:
By delete call in the \"user\" code, or by
In the general case, the factory might not use plain old new to allocate the object. It may use object and/or page pooling, malloc with placement new, or something even more exotic (memory mapping?). There are at least three ways to handle this that I can think of:
recycle method to be called when you are done with the object.delete operator in the object itself.I hesitate to recommend one over the other, since I haven't given it enough thought in the last five minutes to proffer a definitive opinion, but I would tend to favour the last option in combination with a regular smart pointer like boost/tr1::shared_ptr.