我有这样的代码:不能在成员初始化列表初始化对象
CCalcArchive::CCalcArchive() : m_calcMap()
{
}
m_calcMap
的定义是这样的:
typedef CTypedPtrMap<CMapStringToPtr, CString, CCalculation*> CCalcMap;
CCalcMap& m_calcMap;
当我在Visual Studio 2008中编译,我得到这个错误:
error C2440: 'initializing' : cannot convert from 'int' to 'CCalcArchive::CCalcMap &'
我什至不明白它从哪里得到“int”的错误,也为什么这不会'工作?这感觉就像我实际上有某种语法错误,但是这不是应该如何使用成员初始化列表?此外,AFAIK,MFC类CTypedPtrMap
没有构造函数参数。
NULL是一个int,不能转换为CCalcMap&。指针可以指向NULL,但引用不能引用NULL。 – 2008-11-06 19:25:18