void operator delete(void *p)
{
printf("\nDELETE");
// code to actually delete/free object
}
int _tmain(int argc, _TCHAR* argv[])
{
int *p = new int(10);
delete p;
getchar();
return 0;
}
我收到错误操作员删除已定义
我想全局覆盖new和delete运算符。
答案 0 :(得分:0)
你只是实现它还是声明它? Afaik,你只需要实现它。
答案 1 :(得分:0)
可以通过两种方式替换/重载释放功能:
在全局范围内:为了调用它,重载分配函数的签名必须在释放位置可见,除了隐式声明的默认释放函数。该分配函数将用于当前程序中具有相应参数的所有解除分配 在本地范围内:重载的operator delete必须是该类的静态公共成员函数。此解除分配函数仅用于该特定类的解除分配。