0
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 运算符。

4

2 回答 2

0

释放函数可以通过两种方式替换/重载:

在全局范围内:为了调用它,重载分配函数的签名必须在释放位置可见,隐式声明的默认释放函数除外。此分配函数将用于本地范围内当前程序中具有相应参数的所有解除分配:重载的运算符 delete 必须是类的静态公共成员函数。此释放函数将仅用于该特定类的释放。

于 2013-03-22T10:09:45.283 回答
0

你是只实现它还是声明它?Afaik,您只需要实现它。

于 2013-03-22T09:55:40.827 回答