CArchive::SerializeClass
Wywołanie tej funkcji Członkowskich umożliwia przechowywanie i ładowanie informacji o wersji klasy podstawowej.
void SerializeClass(
const CRuntimeClass* pClassRef
);
Parametry
- pClassRef
Wskaźnik do obiektu klasy uruchomieniowej klasy podstawowej.
Uwagi
SerializeClassodczytuje lub zapisuje odwołanie do klasy do CArchive obiektu, w zależności od kierunku CArchive.Użyj SerializeClass miejsce z ReadClass i WriteClass to wygodny sposób serializować obiektów klasy base; SerializeClasswymaga mniejszej ilości kodu i mniej parametrów.
Jak ReadClass, SerializeClass sprawdza, czy informacje o zarchiwizowanych klasy jest zgodny z klasy runtime.Jeśli nie jest zgodny, SerializeClass wygeneruje CArchiveException.
Należy użyć klasy runtime DECLARE_SERIAL i IMPLEMENT_SERIAL; w przeciwnym razie SerializeClass wygeneruje CNotSupportedException.
Użyj RUNTIME_CLASS makra, aby pobrać wartość dla pRuntimeClass parametru.Muszą mieć używane klasy bazowej IMPLEMENT_SERIAL makro.
Przykład
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);
}
Wymagania
Nagłówek: afx.h