operator new 函数不接受 3 个参数(错误及修正方法)

来源:互联网 发布:南风知我意书包网 编辑:程序博客网 时间:2024/05/16 06:07

问题一般由Debug版本下的宏定义引起。

调试版本中 MFC 定义一个将 new 运算符扩展到带两个额外参数的重载 新 运算符预处理器宏。 额外的参数是源代码文件名称和代码行版本号。MFC 可以使用此信息向程序员在调试模式下报告内存泄漏。 这适用于 MFC 类因为 MFC 提供的接受额外的参数的重载。但是,因为此展开通过在预处理器,它会影响所有使用 new 运算符。 如果在项目中使用任何非MFC 类, 新的运算符也会扩展。这样会导致重载过new运算符的非MFC类无法正确创建。简单的解决办法的是添加#undef new。

0 0
原创粉丝点击