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;
}我得到错误的操作符删除已经定义的
我想要覆盖新操作符和全局删除操作符。
发布于 2013-03-22 09:55:40
你是只执行它还是声明它?Afaik,您只需要实现它。
发布于 2013-03-22 10:09:45
可以通过两种方式替换/重载解除分配函数:
在全局范围内:为了调用它,除隐式声明的默认解分配函数外,重载分配函数的签名必须在取消分配的位置可见。此分配函数将用于本地范围内当前程序中具有相应参数的所有释放位置:重载运算符delete必须是该类的静态公共成员函数。此解分配函数将仅用于该特定类的释放。
https://stackoverflow.com/questions/15567249
复制相似问题