为什么我会重载operator new或operator delete?

时间:2011-05-21 19:46:54

标签: c++ memory-management new-operator

  

可能重复:
  Any reason to overload global new and delete?

在c ++中你可以重载新的/删除操作符,这样做有什么好处吗?从调用运算符new之后,在调用运算符delete之前将其结果值发送到构造函数,然后调用析构函数。

4 个答案:

答案 0 :(得分:6)

重载点是控制内存分配。在某些情况下,您希望使用自己的分配器而不是标准分配器(例如,当您希望分配来自静态池而不是直接来自堆)时。

答案 1 :(得分:1)

如果你想编写自己的分配器,那么你可以重载newdelete以使分配器的使用更自然。

答案 2 :(得分:1)

假设您拥有移动设备的代码。您可以重载新的内容,以便以您的方式管理内存,可能比默认行为更有效。

答案 3 :(得分:0)

如果要编写自己的内存使用跟踪器,则重载new和delete会很有用。如果您想模拟低内存条件,也很有用。