如果在类里增加一个带多个参数的operator new函数,则标准的operator new(size_t size)将会屏蔽
解决方法如下:
1. 如果写了一个多带参数的operator new函数,则也写一个和标准new同样参数的new函数
class X
{
private://...
public:void* operator new(size_t size, new_handler handler){//...}void* operator new(size_t size){return ::operator new(size);}
};
2. 写带多个参数的operator new函数时,为多余的参数提供默认值
class Y
{
private://...
public:void* operator new(size_t size, new_handler handler = NULL){//...}
};