CArchive::SerializeClass
Эта функция-член вызывается, когда необходимо хранить и загрузка сведений о версии базового класса.
void SerializeClass(
const CRuntimeClass* pClassRef
);
Параметры
- pClassRef
Указатель на объект среды выполнения класса для базового класса.
Заметки
SerializeClass считывает или записывает ссылку на класс к объекту CArchive в зависимости от направления CArchive.Используйте вместо SerializeClassReadClass и WriteClass как удобный способ сериализации объектов базового класса. SerializeClass требует меньше кода и меньшего числа параметров.
Как ReadClass, SerializeClass проверяет, сжатые данные класса совместимые с классом среды выполнения.Если оно не совместим, то SerializeClass вызовет CArchiveException.
Класс среды выполнения должен использовать DECLARE_SERIAL и IMPLEMENT_SERIAL; в противном случае – значение SerializeClass вызовет CNotSupportedException.
Используйте макрос RUNTIME_CLASS для получения значения для параметра pRuntimeClass.Базовый класс должен использовать макрос IMPLEMENT_SERIAL.
Пример
class CBaseClass : public CObject
{
DECLARE_SERIAL(CBaseClass);
};
class CDerivedClass : public CBaseClass
{
public:
virtual void Serialize(CArchive& ar);
};
void CDerivedClass::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
//normal code for storing contents
//of this object
}
else
{
//normal code for reading contents
//of this object
}
//allow the base class to serialize along
//with its version information
ar.SerializeClass(RUNTIME_CLASS(CBaseClass));
CBaseClass::Serialize(ar);
}
Требования
Header: afx.h