我有這樣的代碼:不能在成員初始化列表初始化對象
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