【发布时间】:2012-02-03 23:15:09
【问题描述】:
我了解有3 general ways可以修改C++中new和delete的行为:
- 替换默认的new/delete和new[]/delete[]
- 覆盖或重载放置版本(覆盖传递给它的内存位置的版本,在创建传递其他类型或数量的参数的版本时重载)
- 重载类特定版本。
对new/delete的行为进行这些修改有什么限制?
特别是对 new 和 delete 可以使用的签名有限制吗?
如果任何替换版本必须具有相同的签名是有意义的(否则它们不会被替换或会破坏其他代码,例如 STL),但是是否允许全局放置或特定类的版本返回智能例如指针或一些自定义句柄?
【问题讨论】:
标签: c++ operator-overloading new-operator delete-operator