CArchive::MapObject

void MapObject (const CObject * pOb );

Parâmetros

pOb

Um ponteiro constante para o objeto sendo armazenado.

Observações

Chame essa fu&nção de membro para colocar objectos no mapa que não são realmente serializado para o arquivo, mas que estão disponíveis para subobjetos fazer referência. Por exemplo, você não pode serializar um documento, mas você teria serializar os itens que fazem parte da document.nbsp; Chamando MapObject, você permitir que os itens ou subobjetos, para fazer referência ao documento. Além disso, subitens serializados podem serializar seu ponteiro voltar m_pDocument.

Você pode chamar MapObject quando você armazena e carregar a partir o objeto de CArchive . MapObject adiciona o objeto especificado para as estruturas de dados interno mantidas pelo objeto CArchive durante a serialização e desserialização, mas ao contrário de ReadObject e WriteObject, que ele não faz chamadas serializar o objeto.

Exemplo

/ / MyDoc.h
/ / Documento deve ter DECLARE_SERIAL e IMPLEMENT_SERIAL

Classe CMyDocument: público CDocument
{
   CObList m_listOfSubItems;
 nbsp;  ...
   DECLARE_SERIAL(CMyDocument)
};

/ / MyDoc.cpp
...
IMPLEMENT_SERIAL (CMyDocument, CObject, 1)
...
privatevoid CMyDocument::Serialize (CArchive & ar)
{
   se (ar.IsStoring())
   {
      / / TODO: Adicionar armazenamento código aqui
   }
   outra pessoa
   {
      / / TODO: Adicionar código de Carregando aqui
   }

ar.MapObject(this);  
   //Serialize os subitens no documento;
   //They será capaz de serializar seu m_pDoc
   //Back ponteiro
   m_listOfSubItems.Serialize(ar);

}

//SubItem.h
CSubItem de classe: CObject pública
{
público:
   CSubItem(CMyDocument * pDoc)
      {m_pDoc = pDoc;}

/ / ponteiro de volta para possuir documento
   CMyDocument * m_pDoc; 
   PALAVRA m_i; / / outros dados do artigo

virtual void Serialize (CArchive & ar);
};

//SubItem.cpp
privatevoid CSubItem::Serialize (CArchive & ar)
{
   se (ar.IsStoring())
   {
      / / será serializar uma referência //to o ponteiro do documento "mapeada"
      ar << m_pDoc;  
      ar << m_i;
   }
   outra pessoa
   {
      / / irá carregar uma referência ao ponteiro de documento "mapeada" //the
      ar >> m_pDoc;
      ar >> m_i;
   }
}

Visão geral de CArchiveMembros de classe | Gráfico de hierarquia

Co&nsulte tambémnbsp;CArchive:: ReadObject, CArchive:: WriteObject

Index