Головна

Файлова обробка об'єктів класів користувача

  1.  I. Статистична обробка даних вимірювання росту
  2.  I. Статистична обробка даних вимірювання росту.
  3.  OLE (Object Linking Embeding) - стандартний механізм зв'язку об'єктів в Windows
  4.  Secret Net Smart Card - виконує функції Secret Net Card, а також забезпечує аутентифікацію користувача за допомогою SmartCard.
  5.  А) Демонстрація об'єктів та наочних посібників
  6.  А) Параметри якості в регулювання для статичних і астатичних об'єктів
  7.  А.4 Меню користувача

Розглянемо сериализацию даних класів користувача.

Нехай створений новий клас користувача СData. Включимо в клас документа Clab4_2Doc об'єкт нового класу DataObject:

Спробуємо виконати всі операції для серіалізації. Проблема виникає в тому, що активна функція Serialize (). Доведеться запрограмувати процес серіалізації.

Загальний принцип ООП полягає в тому, що об'єкт класу повинен працювати зі своїми власними даними. Тому, необхідно додати елемент-функцію Serialize () в новий клас.

Для серіалізації даних класу користувача необхідно виконати наступні операції:

- Оголосити клас, похідний від CObject.

- У оголошення клас включити макрос DECLARE_SERIAL (<ім'я класу>), службовець для включення додаткових членів, які необхідні для серіалізації.

- Включити в реалізацію класу (в файл CData.cpp) макрос IMPLEMENT_SERIAL. Цей макрос пов'язаний з попереднім: він забезпечує реалізацію серіалізації. Три аргументи макросу - це ім'я класу, ім'я базового класу, номер схеми (1 або 0).

- Перегрузить функцію Serialize (), успадковану від базового класу, тобто додати функцію Serialize () в клас користувача.

//CData.h

сlass CData: public CObject

{// ...

CString data;

DECLARE_SERIAL (CData);

void Serialize (CArchive & archive);

};

//CData.cpp

void CData :: Serialize (CArchive & archive);

{

CObject :: Serialize (archive); // Стандартний прийом.

if (archive.IsStoring ())

{

archive << data; // Data - елемент класу CData

}

else

{

archive >> data;

}

}

IMPLEMENT_SERIAL (CData, CObject, 0);

Для елементів класу CData сериализация виконана.

Для виконання серіалізації об'єкта класу (в нашому прикладі це DataObject) слід викликати функцію Serialize () класу CData всередині функції Serialize () документа, наприклад ,:

void Clab4_2Doc :: Serialize (CArchive & ar)

{

DataObject.Serialize (ar);

}

Мета роботи - читання і запис з диска не стандартних об'єктів MFC, об'єктів класів користувача (лаб. Робота lab4_2 - [7, c.43]). Нехай є власний клас CData. Виконати файлову обробку.

Для створення програми lab4_2 виконати етапи:

- Створення проекту lab4_2 (SDI-додаток),

- Додавання нового класу в проект,

- Введення даних з клавіатури,

- Висновок поточного стану документа,

- Модифікація свого класу,

- Створення нової версії Serialize () свого класу,

- Виклик Serialize нового класу всередині Serialize () документа.

Скомпілювати і протестувати додаток

 




 Постановка завдання та визначення специфікацій |  Складання початкової ієрархії і структури класів |  Реорганізація ієрархії і структури класів |  Файл інтерфейсу базового класу |  Роботу в Windows |  Система вікон розробки і система меню |  Бібліотека класів MFC |  Основи візуального програмування. |  система меню |  Система діалогових вікон і елементів управління |

© um.co.ua - учбові матеріали та реферати