开发者

Why should we overload/override new and delete? [duplicate]

This question already 开发者_运维知识库has answers here: Closed 11 years ago.

Possible Duplicate:

Any reason to overload global new and delete?

Why should we overload/override new and delete in C++?

Give me an example of situation in which we should overload/override new, new[], delete or delete[].


This sounds a bit like a homework assignment. Nevertheless, here are two uses off the top of my head:

  • For profiling purposes. For instance, we use it in a library as a poor-man’s valgrind to track memory leaks.
  • To implement a custom allocator (e.g. a pool allocator) for your objects. Usually I’d implement an allocator for this, though.


To provide your implementation of allocating/deallocating memory. new/delete are very general. When you know how your application is going to use memory you can provide more efficient version of new/delete. That would be very simple for example if you used a lot of small object.

Another usage would be to provide memory leak detection.

That's not very often used mechanism - at least in my experience.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜