CArchive::MapObject

public static void MapObject (const CObject * pOb );

Parametri

pOb

Un costante puntatore all'oggetto vengono Archiviato.

Osservazioni

Chiamare questa fu&nzione membro per posizionare gli oggetti nella mappa che non vengono serializzati davvero al file, ma che sono disponibili per sottoggetti fare riferimento. Ad esempio, si potrebbe non serializzare un documento, ma si sarebbero serializza gli elementi che fanno parte del document.nbsp; Chiamando MapObject, permettono di quegli elementi o sottoggetti, per fare riferimento al documento. Inoltre, gli elementi secondari serializzati possono serializzare il puntatore posteriore m_pDocument.

Č possibile chiamare MapObject quando si archivia a e caricare dall'oggetto CArchive . MapObject aggiunge l'oggetto specificato per le strutture di dati interne gestite dal oggetto CArchive durante la serializzazione e la deserializzazione, ma a differenza di ReadObject e WriteObject, non chiamare serializzare l'oggetto.

Esempio

/ / MyDoc.h
/ / Documento dovrebbe avere DECLARE_SERIAL e IMPLEMENT_SERIAL

classe CMyDocument: CDocument pubblica
{
   CObList m_listOfSubItems;
 nbsp;  ...
   DECLARE_SERIAL(CMyDocument)
};

/ / MyDoc.cpp
...
IMPLEMENT_SERIAL (CMyDocument, CObject, 1)
...
public static void CMyDocument::Serialize (CArchive & ar)
{
   Se (ar.IsStoring())
   {
      / / TODO: aggiungere codice memorizzazione qui
   }
   altro
   {
      / / TODO: aggiungere codice di caricamento qui
   }

AR.MapObject(this);  
   //Serialize elementi secondari nel documento;
   //They sarā in grado di serializzare i loro m_pDoc
   //Back puntatore
   m_listOfSubItems.Serialize(AR);

}

//SubItem.h
classe CSubItem: CObject pubblica
{
pubblica:
   CSubItem(CMyDocument * pDoc)
      {m_pDoc = pDoc;}

/ / puntatore di nuovo a possedere il documento
   CMyDocument * m_pDoc; 
   WORD m_i; / / altro elemento dati

virtual void Serialize (CArchive & ar);
};

//SubItem.cpp
public static void CSubItem::Serialize (CArchive & ar)
{
   Se (ar.IsStoring())
   {
      / / verranno serializzati un riferimento //to il puntatore "mappato" documento
      AR << m_pDoc;  
      AR << m_i;
   }
   altro
   {
      / / caricherā un riferimento al puntatore "mappato" documento //the
      AR >> m_pDoc;
      AR >> m_i;
   }
}

Pa&noramica di CArchive |nbsp; Membri della classe | Gerarchia Chart

Vedere a&nchenbsp;CArchive::ReadObject, CArchive::WriteObject

Index