MFC中在跟踪内存泄露时怎么重载operator delete
在下面这段宏中,只重载了operator new,不知道怎么去重载operator delete?
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#define new DEBUG_NEW
#endif
[解决办法]
单单为了这个目的,不用重载operator delete操作符。
这样定义就是为了在DEBUG模式下检测new了以后没有delete的。
当在debug模式下时,分配内存时的new被替换成DEBUG_NEW,而这个DEBUG_NEW不仅要传入内存块的大小,还要传入源文件名和行号。当发生内存泄漏时,在调试模式下可以定位到该问题代码处。若删掉该句,就不能进行定位。release版本下的new就是简单的new,不带文件名和行号。
[解决办法]