CArchive::SerializeClass
Chamar essa função de membro quando você deseja armazenar e carregar informações de versão de uma classe base.
void SerializeClass(
const CRuntimeClass* pClassRef
);
Parâmetros
- pClassRef
Um ponteiro para um objeto da classe em tempo de execução para a classe base.
Comentários
SerializeClass ler ou gravar a referência a uma classe ao objeto de CArchive , dependendo da direção de CArchive. Use SerializeClass no lugar de ReadClass e WriteClass como uma maneira conveniente para serializar objetos da classe base; SerializeClass requer menos código e menos parâmetros.
Como ReadClass, SerializeClass verifica que informações arquivadas da classe é compatível com sua classe de tempo de execução. Se não for compatível, SerializeClass irá acionar CArchiveException.
Sua classe de tempo de execução deve usar DECLARE_SERIAL e IMPLEMENT_SERIAL; caso contrário, SerializeClass irá acionar CNotSupportedException.
Use a macro de RUNTIME_CLASS para recuperar o valor para o parâmetro de pRuntimeClass . A classe base deve ter usado a macro de IMPLEMENT_SERIAL .
Exemplo
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
Cabeçalho: afx.h