Поделиться через


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

См. также

Ссылки

Класс CArchive

Диаграмма иерархии

CArchive::ReadClass

CArchive::WriteClass

CArchive::GetObjectSchema

CArchive::SetObjectSchema

Класс CArchiveException

Класс CNotSupportedException