关于Serialization的问题。
我写了如下的类:
class CStudent : public CObject
{
DECLARE_SERIAL(CStudent)
public:
CStudent()
{
//具体实现略
}
virtual ~CStudent() {};
virtual void Serialize(CArchive& ar);
//类的其他部分略
};
IMPLEMENT_SERIAL(CStudent, CObject, 0)
void CStudent::Serialize(CArchive &ar)
{
if (ar.IsStoring())
{
//具体实现略
}
else
{
//具体实现略
}
}
在类中重载了Serialize函数之后,我使用了如下的语句来调用:
CFile data(FILENAME, CFile::modeCreate and CFile::modeWrite and CFile::shareDenyWrite);
CArchive arData(&data, CArchive::store);
arData << m_Student;
arData.Close();
data.Close();
但编译时系统却提示我说没有重载“<<“运算符,不能编译。可是这个运算符本应该是已经由CArchive重载过了。我实在不明白是怎么回事,望各位高手指点。