CArchive::SerializeClass
Llame a esta función miembro cuando desee almacenar y cargar la información de versión de una clase base.
void SerializeClass(
const CRuntimeClass* pClassRef
);
Parámetros
- pClassRef
Un puntero a un objeto de la clase en tiempo de ejecución para la clase base.
Comentarios
Lecturas o escrituras deSerializeClass la referencia a una clase al objeto de CArchive , en función de la dirección de CArchive. Utilice SerializeClass en lugar de ReadClass y WriteClass como una manera cómoda de serializar objetos de clase base; SerializeClass requiere menos codificada y menos parámetros.
Como ReadClass, SerializeClass comprueba que la información almacenada de la clase es compatible con la clase del runtime. Si no es compatible, SerializeClass producirá CArchiveException.
La clase en tiempo de ejecución debe usar DECLARE_SERIAL y IMPLEMENT_SERIAL; si no, SerializeClass producirá CNotSupportedException.
Utilice la macro de RUNTIME_CLASS para recuperar el valor para el parámetro de pRuntimeClass . La clase base debe haber utilizado la macro de IMPLEMENT_SERIAL .
Ejemplo
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);
}
Requisitos
encabezado: afx.h