问题描述
|
我在头文件中有下面的类
class CodeListsqlGenerator : public ICodeListsqlGenerator,public CDialog
{
........
public:
CodeListsqlGenerator(IIntelligentCodeListUpgraderParameter *i_intelligent_codelist_upgrader_parameter);
}
当我在.cpp文件中使用新运算符创建CodeListsqlGenerator类型的对象时
ICodeListsqlGenerator *CreateCodeListsqlGeneratorInterface(IIntelligentCodeListUpgraderParameter *i_intelligent_codelist_upgrader_parameter)
{
ICodeListsqlGenerator *i_codelist_sql_generator = new CodeListsqlGenerator(i_intelligent_codelist_upgrader_parameter);
return i_codelist_sql_generator;
}
编译错误C2661时,我得到以下信息:\'CObject :: operator new \':没有重载函数需要4个参数
如何纠正此错误?
在此先感谢-Athreya
解决方法
DEBUG_NEW宏必须更改。检查是否包含预处理器#undef new,
尝试在new关键字之前编写#undef new
,似乎您正在尝试使用CodeListSqlGenerator构造函数创建ICodeListSqlGenerator对象。无法完成此操作,因为ICodeListSqlGenerator已经具有自己的构造函数。但是,CodeListSqlGenerator对象是ICodeListSqlGenerator,因此您可以创建CodeListSqlGenerator对象并将其指针作为ICodeListSqlGenerator指针返回。