CArchive::MapObject

void MapObject (const CObject * pOb );

Parametry

pOb

Stała wskaźnik do obiektu są przechowywane.

Uwagi

Wywołanie funkcji tego Państwa do obiektów na mapie, że tak naprawdę nie są szeregowane do pliku, ale, które są dostępne dla podobiektów odwołać. &Na przykład nie może szeregować dokumentu, ale będzie serializować elementy, które są częścią document.nbsp; Przez wywołanie MapObject, umożliwia te elementy lub podobiektów, aby odwołać dokumentu. Ponadto serializowane podelementy można serializować wskaźnik Wróć m_pDocument.

MapObject można wywołać, przechowywać i załadować z obiektu CArchive . MapObject dodaje określony obiekt do struktur danych wewnętrznych, utrzymywane przez obiekt CArchive podczas serializacji i deserializacji, ale w przeciwieństwie do funkcji ReadObject i funkcji WriteObject, go nie wymagają serializować obiektu.

Przykład

/ / MyDoc.h
/ / Dokument powinien mieć DECLARE_SERIAL i IMPLEMENT_SERIAL

Klasa CMyDocument: CDocument publicznych
{
   CObList m_listOfSubItems;
 nbsp;  ...
   DECLARE_SERIAL(CMyDocument)
};

/ / MyDoc.cpp
...
IMPLEMENT_SERIAL (CMyDocument, CObject, 1)
...
void CMyDocument::Serialize (CArchive & czda)
{
   Jeżeli (cz.d.a.IsStoring())
   {
      / / TODO: Dodaj przechowywanie kod tutaj
   }
   Else
   {
      / / TODO: Dodaj kod ładujący tutaj
   }

cz.d.a.MapObject(this);  
   //serialize elementy podrzędne w dokumencie;
   //They będzie serializować ich m_pDoc
   wskaźnik //Back
   m_listOfSubItems.serialize(AR);

}

//SubItem.h
Klasa CSubItem: CObject publicznych
{
publiczne:
   CSubItem(CMyDocument * pDoc)
      {m_pDoc = pDoc;}

/ / wskaźnik z powrotem do właściciel dokumentu
   CMyDocument * m_pDoc; 
   Program WORD m_i; / / inne element danych

wirtualny Serialize nieważne (CArchive & czda);
};

//SubItem.cpp
void CSubItem::Serialize (CArchive & czda)
{
   Jeżeli (cz.d.a.IsStoring())
   {
      / / będzie serializować //to odniesienia wskaźnik dokumentu "mapowane"
      Ar << m_pDoc;  
      Ar << m_i;
   }
   Else
   {
      / / załaduje odwołanie do //drugi "zmapowane" dokument wskaźnik
      Ar >> m_pDoc;
      Ar >> m_i;
   }
}

Omówie&nie CArchive |nbsp; Klasa członków | Wykres hierarchii

Zobacz też CArchive::ReadObject, CArchive::WriteObject

Index