до втрати MapObject (константа CObject * а / );
Параметри
а /
Постійна вказівник на об'єкт, збереження.
Зауваження
Цей член функцію, щоб розмістити об'єкти на карті, яка дійсно не серіалізованной на файл, але що доступні для під-об'єктами посилання. Наприклад, ви не можете сериализации документ, але ви б сериализации об'єктів, які є частиною docume&nt.nbsp; Виклик MapObject, дає змогу елементи, або під-об'єктами, посилання на документ. Крім того, серіалізованной підпункти можна сериализации m_pDocument назад вказівника миші.
Ви можете назвати 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)
{
Якщо (АР.IsStoring())
{
/ / TODO: додати зберігання код тут
}
інше
{
/ / TODO: додайте тут код завантаження
}
АР.MapObject(this);
//serialize підпункти в документ;
//They зможуть сериализации їх m_pDoc
//Back вказівник
m_listOfSubItems.serialize(AR);
}
//SubItem.h
клас CSubItem: Громадська CObject
{
готелю:
CSubItem(CMyDocument * pDoc)
{m_pDoc = pDoc;}
/ / назад вказівник на володіння документа
CMyDocument * m_pDoc;
СЛОВО m_i; / / Інші елемента даних
Віртуальний недійсним Serialize (CArchive & ar);
};
//SubItem.cpp
недійсним CSubItem::Serialize (CArchive & ar)
{
Якщо (АР.IsStoring())
{
/ / буде сериализации посилання //to "зіставлених" документ вказівник
Залишено << m_pDoc;
Залишено << m_i;
}
інше
{
/ / буде завантажити посилання на //the "зіставлених" документ вказівник
Залишено >> m_pDoc;
Залишено >> m_i;
}
}
Огляд CArchive | Члени класу | Ієрархічна діаграма
Дивіться також CArchive::ReadObject, CArchive::WriteObject