Приклад рішення задачі Див. проект «Task14».
Контрольні питання Що таке перевизначення (заміщення) методів?
Чим заміщення відрізняється від перевантаження?
Які особливості використання віртуальних методів?
Що таке чисті віртуальні методи?
Наведіть приклади поліморфізму.
Що таке клас-контейнер?
Наведіть приклад простішого контейнеру.
Як можна використовувати покажчик на об’єкт базового класу?
Як забезпечити одноманітну обробку контейнерів даних різного типу?
Наведіть приклад використання покажчика на базовий клас для управління об’єктом-спадкоємцем.
15 Збереження і відновлення колекції об’єктів
Лабораторна робота №15
Мета: вивчити методи забезпечення довгострокового зберігання колекції об’єктів.
Індивідуальне завдання При розробці проекту використовувати раніше обрану прикладну область та реалізовану функціональність.
Розширити функціональність розробленої ієрархії класів забезпечивши можливість збереження/відновлення даних контейнера для подальшої обробки.
Створити методи, що забезпечують оброблення колекції екземплярів Об’єктів 2 і 3 (різних підкласів в одному і тому ж контейнері). Оброблення повинно включати:
виведення усієї колекції на екран у вигляді списку;
виведення детальної інформації про елемент із заданим номером;
додавання до колекції елемента із введенням його з клавіатури;
додавання до колекції елемента із введенням його з текстового файла;
видалення елемента із заданим номером;
збереження елемента із заданим номером у текстовому файлі.
Забезпечити та продемонструвати серіалізацію колекції – збереження у файлі і відновлення з файла.
Термінологія Колекція – об’єкт, що містить у собі набір значень одного чи різних типів і дозволяє звертатися до цих значень.
Колекція дозволяє записувати в себе значення і витягувати їх. Призначення – служити сховищем об’єктів і забезпечувати доступ до них.
Колекції використовують для зберігання груп об’єктів, що підлягають однотипної обробці. Для звернення до конкретного елементу колекції можуть використовуватися різні методи в залежності від її логічної організації. Реалізація може допускати виконання окремих операцій над колекціями в цілому.
Колекція може мати постійний розмір або розмір, що динамічно змінюється. У першому випадку в колекцію може бути записано тільки строго задану кількість об’єктів, у другому – колекція допускає розміщення стількох об’єктів, скільки необхідно. У більшості випадків мають на увазі динамічну колекцію, тобто колекцію другого виду, хоча, наприклад, звичайний статичний масив – це теж колекція.
Колекція може зберігати об’єкти тільки одного або різних типів. У другому випадку говорять про гетерогенні колекції.
Колекції відрізняються від контейнерів тим, що допускають гіллясту структуру.