CArchive::MapObject

Mapobject를 무효화 (const CObject * 주선 );

매개 변수

주선

저장 되는 개체에 대 한 상수 포인터。

주의

정말 파일에 serialize 되지 지도에 개체를 배치 하려면이 멤버 함수를 호출 하지만 그 하위 개체를 참조에 사용할 수 있습니다. 예를 들어, 문서를 serialize 하지 수 있지만 document.nbsp;의 일부인 항목을 serialize 할 것 MapObject를 호출 하 여 해당 항목 또는 하위 개체를 참조 하는 문서를 허용 합니다. 또한, 연속 된 하위 m_pDocument 다시 포인터 serialize 할 수 있습니다(&N).

저장 하 고 CArchive 개체에서 로드할 때 MapObject 를 호출할 수 있습니다. Serialization 및 deserialization 하는 동안 하지만 ReadObject달리 CArchive 개체에 의해 유지 관리 되는 내부 데이터 구조를 지정 된 개체를 추가 하는 MapObject WriteObject, 그것은 호출 하지 않는 개체에 serialize。

예제

/ / MyDoc.h
/ / 문서 DECLARE_SERIAL 및 IMPLEMENT_SERIAL 있어야

CMyDocument 클래스: 공용 CDocument
{
   CObList m_listOfSubItems;
 nbsp;? ...
   DECLARE_SERIAL(CMyDocument)
};

/ / MyDoc.cpp
...
IMPLEMENT_SERIAL (CMyDocument, CObject, 1)
...
void CMyDocument::Serialize (CArchive & 아칸소)
{
   경우 (ar.IsStoring())
   {
      / / TODO: 여기에 저장 코드 추가
   }
   다른
   {
      / / TODO: 여기 로드 코드 추가
   }

아칸소입니다.MapObject(this);? 
   //serialize 하위 문서;
   //they 그들의 m_pdoc을 serialize 할 수 있습니다.
   //back 포인터
   m_listOfSubItems.Serialize(ar);

}

//SubItem.h
CSubItem 클래스: 공용 CObject
{
공개:
   CSubItem(CMyDocument * pDoc)
      {m_pDoc = pDoc;}

/ / 문서 소유를 포인터를 다시
   CMyDocument * m_pDoc; 
   WORD m_i; / / 기타 데이터 항목

가상 void Serialize (CArchive & 아칸소);
};

//SubItem.cpp
void CSubItem::Serialize (CArchive & 아칸소)
{
   경우 (ar.IsStoring())
   {
      / / 참조 //to "매핑된" 문서 포인터 serialize
      아칸소 << m_pDoc;? 
      아칸소 << m_i;
   }
   다른
   {
      / / //the "매핑된" 문서 포인터에 대 한 참조를 로드 됩니다
      아칸소 >> m_pDoc;
      아칸소 >> m_i;
   }
}

CArchive 개요 |nbsp; 클래스 멤버 (ko) | 계층 구조 차트(&N)

참고 항목nbsp;CArchive::ReadObject, CArchive::WriteObject(&N)

Index