CArchive::MapObject

โมฆะ MapObject (const CObject * pOb );

พารามิเตอร์

pOb

ตัวชี้ไปยังวัตถุที่มีเก็บค่าคงที่?

หมายเหตุ

เรียกฟังก์ชันนี้สมาชิกการวางวัตถุในแผนที่จริง ๆ ไม่ได้แบบอนุกรมแฟ้ม แต่ที่ไม่พร้อมใช้งานสำหรับ subobjects การอ้างอิง ตัวอย่างเช่น คุณอาจไม่ซีเรียลไลซ์เอกสาร แต่คุณจะซีเรียลไลซ์สินค้าที่เป็นส่วนหนึ่งของ document.nbsp โดยการเรียกMapObjectคุณอนุญาตเหล่านั้นรายการ หรือ subobjects การอ้างอิงเอกสาร ยัง ไอเทมย่อยแบบอนุกรมสามารถซีเรียลไลซ์ชี้ของพวกเขากลับm_pDocument(&N)?

คุณสามารถเรียกMapObjectเมื่อคุณจัดเก็บเพื่อโหลดจากวัตถุCArchive MapObjectเพิ่มวัตถุที่ระบุให้กับโครงสร้างภายในข้อมูลเก็บรักษาไว้ โดยวัตถุCArchiveใน ระหว่างอนุกรมและ deserialization แต่แตกต่างจากReadObject และWriteObject,มันไม่เรียกซีเรียลไลซ์วัตถุ?

ตัวอย่าง

/ / MyDoc.h
/ / เอกสารควรมี DECLARE_SERIAL และ IMPLEMENT_SERIAL

คลา CMyDocument: CDocument สาธารณะ
{
   CObList m_listOfSubItems
 nbsp  ...
   DECLARE_SERIAL(CMyDocument)
};

/ / MyDoc.cpp
...
IMPLEMENT_SERIAL (CMyDocument, CObject, 1)
...
CMyDocument::Serialize (CArchive & ar) ถือเป็นโมฆะ
{
   ถ้า (arIsStoring())
   {
      / / TODO: เพิ่มเก็บรหัสต่อไปนี้
   }
   อื่น
   {
      / / TODO: เพิ่มโค้ดโหลดที่นี่
   }

arMapObject(this)  
   //serialize ไอเทมย่อยที่ในเอกสาร
   //they จะซีเรียลไลซ์ m_pDoc ของตนเองได้
   //back ชี้
   m_listOfSubItems.Serialize(ar)

}

//SubItem.h
คลา CSubItem: CObject สาธารณะ
{
สาธารณะ:
   CSubItem(CMyDocument * pDoc)
      { m_pDoc = pDoc; }

/ / กลับชี้ owning เอกสาร
   CMyDocument * m_pDoc 
   WORD m_i / / อื่น ๆ รายการข้อมูล

เสมือนโมฆะ Serialize (CArchive & ar);
};

//SubItem.cpp
CSubItem::Serialize (CArchive & ar) ถือเป็นโมฆะ
{
   ถ้า (arIsStoring())
   {
      / / จะซีเรียลไลซ์ //to การอ้างอิงเอกสาร "แมป" ชี้
      ar << m_pDoc  
      ar << m_i
   }
   อื่น
   {
      / / จะโหลดการอ้างอิงที่ชี้เอกสาร "แมป" //the
      ar >> m_pDoc
      ar >> m_i
   }
}

ภาพรวม CArchive |nbsp สมาชิกของคลาส| แผนภูมิของลำดับชั้น(&N)

ดูเพิ่มเติมnbspCArchive::ReadObject, CArchive::WriteObject(&N)

Index