CArchive::SerializeClass
Appelez la fonction membre lorsque vous souhaitez stocker et charger des informations de version d'une classe de base.
void SerializeClass(
const CRuntimeClass* pClassRef
);
Paramètres
- pClassRef
Un pointeur vers un objet de classe d'exécution de la classe de base.
Notes
SerializeClass lit ou écrit la référence à une classe à l'objet d' CArchive , selon la direction d' CArchive. Utilisez SerializeClass à la place de ReadClass et WriteClass comme moyen pratique de sérialiser les objets de classe de base ; SerializeClass requiert moins de code et moins paramètres.
Comme ReadClass, SerializeClass vérifie que les informations de classe archivées sont compatibles avec votre classe d'exécution. S'il n'est pas compatible, SerializeClass lève CArchiveException.
Votre classe de runtime doit utiliser DECLARE_SERIAL et IMPLEMENT_SERIAL; sinon, SerializeClass lève CNotSupportedException.
Utilisez la macro de RUNTIME_CLASS pour récupérer la valeur pour le paramètre d' pRuntimeClass . La classe de base doit être utilisé la macro d' IMPLEMENT_SERIAL .
Exemple
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);
}
Configuration requise
Header: afx.h