На этом шаге мы рассмотрим встраивание поддержки сериализации.
Класс CStockData является прямым наследником класса CObject и получает его конструктор
по умолчанию. Вам придется добавить макросы поддержки сериализации и функцию Serialize().
- Создание макросов сериализации.
- Откройте файл StockData.h для редактирования определения класса CStockData.
- В начале определения класса, в разделе public, добавьте такую строку:
DECLARE_SERIAL(CStockData)
- Откройте файл StockData.cpp и в его начале, сразу после директив препроцессора, вставьте следующую строку:
IMPLEMENT_SERIAL(CStockData, CObject, 1)
- Создание функции Serialize().
- Вернитесь к файлу StockData.h.
- Добавьте в открытый раздел класса CStockData следующее объявление:
virtual void Serialize(CArchive& ar);
- Вернитесь к файлу StockData.cpp и в его конце добавьте следующий код:
void CStockData::Serialize(CArchive& ar) { if (ar.IsStoring()) { ar << m_strFund; ar << m_date; ar << m_dblPrice; } else { ar >> m_strFund; ar >> m_date; ar >> m_dblPrice; } }
Текст измененного приложения можно взять здесь (67,2 Кб).
На следующем шаге мы переопределим функцию SerializeElements().