In most cases, overloading the global new/delete is a bad idea (TM).
Class-level memory management (via overload) should only be used if necessary. Profile your application and see if there is a bottleneck with allocation / deallocation from the heap. In addition, things get complicated if your class can / will be obtained later (adds an extra load on the developer, since new/delete are static members).
Try switching to a dispenser (with strategies so you can verify what works best for your needs), similar to what STL does.
source share