共有三个功能
void operator delete(void * hPointer);
void operator delete(void * hPointer, size_t ulSize);
void operator delete[](void * hPointer, size_t ulSize);
它调用相同的代码。例如(仅举例):
{
hPointer=nullptr;
return;
}
可以复制每个函数的代码,但最好使用别名系统。也就是说,对于任何delete
一个且相同的函数都必须被调用。预处理器指令的使用是不可能的,因为函数签名不同。
只需调用其他函数的第一个函数,就会[几乎]没有代码重复
你只需要做对,即 带有函数名。而这个名字是
operator delete
。我从你的评论中怀疑你试图delete hPointer
在第二个和第三个函数中做,当然,这根本不一样。