Производит сохранение и восстановление данных:
virtual void Serialize( CArchive& ar ); throw( CMemoryException ); throw( CArchiveException ); throw( CFileException );
Объект ar типа CArchive, с которым производятся операции сохранения и восстановления.
При создании своего класса Вы перегружаете функцию Seliarize и в новой функции не забываете вызвать функцию предка.
class CMyObject : public CObject { public: #ifdef _DEBUG void AssertValid() const; void Dump(CDumpContext& dc) const; #endif void Serialize( CArchive& ar ); protected: DECLARE_SERIAL(CMyObject); private: int x; int y; }; void CMyObject::Serialize( CArchive& ar ) { CObject::Serialize( ar ); if( ar.IsStoring() ) ar << x << y; else ar >> x >> y; } IMPLEMENT_SERIAL(CMyObject,CObject,1);
Для использования возможностей сохранения Вы должны использовать следующие макроопределения
DECLARE_SERIAL IMPLEMENT_SERIAL
Кроме того у класса должен быть конструктор без параметров. Для определения действия сохранения или удаления используется метод IsStoring класса CArhive.