0

在我的项目中,我尝试重新加载全局运算符 new 并删除([] 也是)。当我第一次尝试编译时,出现链接错误:

Main.obj:错误 LNK2005:“void * __cdecl operator new(unsigned int)”(??2@YAPAXI@Z) 已在 LIBCMTD.lib(new.obj) 中定义

当我第二次尝试编译时,错误神奇地消失了!但有时会回来。 如何解决这个问题?

运行时库:MTd。

代码:

void  operator delete(void * pointer){LALALA}

或者

void  __cdecl operator delete(void * pointer){LALALA}

当我执行以下步骤时,此错误会返回:

  1. 删除重新加载的新(和其他)
  2. 编译
  3. 再次重新加载
  4. 尝试编译并得到这个错误

在其他情况下,错误消失。这是什么原因?

4

1 回答 1

-1

您必须将“new”和“delete”隐式声明为静态成员函数

void* operator new (size_t size);

无效运算符删除 (void *p);

于 2012-04-15T19:30:14.977 回答