【发布时间】:2011-11-11 03:02:57
【问题描述】:
为什么我们应该在 C++ 中重载/覆盖 new 和 delete?
举个例子说明我们应该重载/覆盖 new、new[]、delete 或 delete[]。
【问题讨论】:
标签: c++ memory-management overloading new-operator
为什么我们应该在 C++ 中重载/覆盖 new 和 delete?
举个例子说明我们应该重载/覆盖 new、new[]、delete 或 delete[]。
【问题讨论】:
标签: c++ memory-management overloading new-operator
提供分配/释放内存的实现。新/删除非常笼统。当您知道您的应用程序将如何使用内存时,您可以提供更有效的 new/delete 版本。例如,如果您使用了很多小对象,那将非常简单。
另一个用途是提供内存泄漏检测。
这不是经常使用的机制 - 至少在我的经验中。
【讨论】:
这听起来有点像家庭作业。尽管如此,我还是想到了两个用途:
valgrind 来跟踪内存泄漏。allocator。【讨论】:
poor-man’s valgrind :))