CArchive::SerializeClass
Chame essa função de membro para armazenar e carregar as informações de versão de uma classe base.
void SerializeClass(
const CRuntimeClass* pClassRef
);
Parâmetros
- pClassRef
Um ponteiro para um objeto de classe de time de execução para a classe base.
Comentários
SerializeClass lê ou grava a referência a uma classe para o CArchive objeto, dependendo da direção das CArchive. Use SerializeClass em vez de ReadClass and WriteClass sistema autônomo uma maneira conveniente de serializar objetos da classe base; SerializeClass requer menos código e menos parâmetros.
Como ReadClass, SerializeClass verifica se as informações de classe arquivada são compatível com sua classe em tempo de execução. Se não for compatível, SerializeClass lançará um CArchiveException.
A classe tempo de execução deve usar DECLARE_SERIAL and IMPLEMENT_SERIAL; caso contrário, SerializeClass lançará um CNotSupportedException.
Use o RUNTIME_CLASS macro para recuperar o valor de pRuntimeClass parâmetro. A classe base deve ter usado o IMPLEMENT_SERIAL macro.
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