Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Моделювання структури книги

Реферат Моделювання структури книги





p>

Т.к. об'єкт класу книги є відкритим атрибутом класу документа, то доступ до членів класу книги здійснюється через вказівник на об'єкт класу документа. Т.ч., щоб викликати функцію-член класу CBookClass, необхідно отримати спочатку покажчик на об'єкт класу CBookDoc:


CBookDoc * pDoc = GetDocument ();

pDoc-> m_Book.SetTreeCtrl (& refCtrl);


Якщо члени-функції викликаються всередині їх класу, то виклик цих функцій здійснюється безпосередньо без вказівки імені класу. Наприклад, усередині функції CRazdels :: DeleteRazdels () здійснюється виклик членів-функцій, успадкованих від базового класу CObArray:


void CRazdels :: DeleteRazdels ()

{

WORD Counter;

for (Counter = 0; Counter < GetSize (); Counter + +)

{

CRazdel * Razdel = (CRazdel *) GetAt (Counter);

Razdel-> GetGlavas () -> DeleteGlavas ();

delete Razdel;

}

RemoveAll ();

}


Використання успадкування

Згідно концепції об'єктно-орієнтованого програмування функція завантаження файлу книги з диска повинна бути інкапсулюватися в самому класі CBookClass. Основні етапи створення класу, який може самостійно організувати збереження-відновлення (у документації на MFC застосовується термін serialize -серіалізация ) власних членів-змінних перераховані нижче:

1.Об'явіть клас як похідний від CObject.

2.В оголошення класу включити макрос DECLARE_SERIAL. p> 3.В реалізацію класу включити макрос IMPLEMENT_SERIAL. p> 4.Перегрузіть метод Serialize (), успадкований від базового класу.

5.Перегрузіть для нового класу серед інших конструктор за замовчуванням.

Т.ч. в нашому випадку неминуче доводиться застосовувати механізм успадкування класів. Як тол ько ми оголосили клас книги похідним від CObject, нам дозволяється використовувати серіалізацию даних.

Крім виконання вищевказаних п'яти пунктів необхідно також перевантажити метод Serialize () і для класу документа:


void CBookDoc :: Serialize (CArchive & ar)

{

m_Book.Serialize (ar);

}


Також як і метод Serialize () класу документа перевантажений метод Serialize () класу книги не виконує безпосереднє читання тексту книги з файлу. Цей метод витягує з файлу тільки лише службову інформацію, визначаючи назву книги і кількість її розділів. Далі в циклі створюються об'єкти класу розділу, їм делегується завантаження з файлу розділів, потім відбувається додавання розділів в коллекцию розділів книги. Аналогічно розділ, завантаживши службову інформацію розділу, делегує завантаження глав класу глави; глава, у свою чергу, делегує завантаження сторінок класу сторінки; а вже сторінка викликає оператор завантаження з архіву, визначений у MFC-класі CString. b>
Реалізація залежностей


Назад | сторінка 9 з 11 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Клас птахи, загальна характеристика класу
  • Реферат на тему: Прикладне додаток &Розробка проекту для створення нового класу Auto і елеме ...
  • Реферат на тему: Створення базового класу &Рядок&, рядки ідентифікатора і десяткової рядка. ...
  • Реферат на тему: Особливості підбору вправ для розвитку рухових дій учнів 3 класу по розділу ...
  • Реферат на тему: Виконання робіт з обладнання мультимедійного класу