static void* operator new(size_t size);
static void operator delete(void* p);我定义的两个重载new,deletebase *b=new base;
delete b;//执行到这里怎么不调用重载的delete??这两个重载成对怎么定义才对?

解决方案 »

  1.   

    为什么要加static呢
    http://lenux.blogchina.com/5180198.html
      

  2.   

    static void operator delete(void* p,size_t size);
      

  3.   

    #ifdef _DEBUG
    #define new DEBUG_NEW
    #undef THIS_FILE
    static char THIS_FILE[] = __FILE__;
    #endif原来是这段惹的祸
    Debug模式的new重新定义了~~
    static void* operator new(size_t size,const char* szFile,int nLine);
    这样才对,怪不得老出错
    #ifdef _DEBUG
    #define new DEBUG_NEW
    #undef THIS_FILE
    static char THIS_FILE[] = __FILE__;
    #endif请问这段必需要的吗?不要行不行
      

  4.   

    VC在调试中会把分配的内存自动初始化为0xCC.