Загальні положення 4 Частина Основи мови С++ 9



Download 1,18 Mb.
bet31/37
Sana05.08.2022
Hajmi1,18 Mb.
#846530
1   ...   27   28   29   30   31   32   33   34   ...   37
Bog'liq
Лабораторні роботи метод вказівки

Приклад рішення задачі
Див. проект «Task13».


Контрольні питання

  1. Що таке оператор в C++?

  2. Що таке функція в C++?

  3. Що таке метод в C++?

  4. Що означає сигнатура функції?

  5. Як виконується перевантаження в C++?

  6. Які є особливості перевантаження операторів?

  7. Наведіть приклад перевантаження операторів у формі зовнішніх функцій.

  8. Наведіть приклад перевантаження операторів у формі функції класу.

  9. Що таке друзі в C++?

  10. Наведіть приклад використання дружніх стосунків між класами.

14 Поліморфізм. Віртуальні елементи класів


Лабораторна робота №14
Мета: використання покажчиків на базовий клас для розміщення елементів в контейнері. Обробка елементів за допомогою віртуальних методів.
Індивідуальне завдання
При розробці проекту використовувати раніше обрану прикладну область та реалізовану функціональність.
Для обробки Об’єктів 2 і 3:

  • створити методи, які забезпечують збереження екземплярів у файлах (в окремому файлі кожний екземпляр) у текстовому вигляді;

  • забезпечити методи, які зчитують об’єкти з текстових файлів;

  • перевантажити оператори <, >, ==;

  • доповнити ієрархію власним класом-контейнером, продемонструвати його функціональність.

При розміщенні об’єктів в контейнерах, використовувати покажчик (посилання) на базовий клас.
Розширити ієрархію класом утиліт для обробки контейнерів динамічних об’єктів (введення, виведення, пошук та інше).
Термінологія
Поліморфізм (poly – багато, morphos – форма) – це властивість системи використовувати об’єкти з однаковим інтерфейсом без інформації про тип і внутрішню структуру об’єкта.
Віртуальний метод – це метод (функція) класу, який може бути перевизначений в класах-спадкоємцях так, що конкретна реалізація методу для виклику буде визначатися під час виконання. Користувачеві досить лише знати, що об’єкт належить класу або спадкоємцю класу, в якому метод оголошений. Віртуальні методи дозволяють створювати загальний код, який може працювати як з об’єктами базового класу, так і з об’єктами будь-якого його спадкоємця. При цьому базовий клас визначає спосіб роботи з об’єктами і будь-які його спадкоємці можуть надавати конкретну реалізацію цього способу.Базовий клас може і не надавати реалізації віртуального методу, а лише декларувати його існування. Такі методи без реалізації називаються «чистими віртуальними» (pure virtual) або абстрактними. Клас, який містить хоча б один такий метод, теж буде абстрактним. Об’єкт такого класу створити не можна. Спадкоємці абстрактного класу повинні надати реалізацію для всіх його абстрактних методів, інакше вони, в свою чергу, будуть абстрактними класами. Для кожного класу, що має хоча б один віртуальний метод, створюється таблиця віртуальних методів. Кожен об’єкт зберігає покажчик на таблицю свого класу. Для виклику віртуального методу з об’єкта береться покажчик на відповідну таблицю віртуальних методів, а з неї, за фіксованим зміщення покажчик на реалізацію методу, використовуваного для даного класу.
Деструктор зазвичай роблять віртуальним. Це дозволяє коректно видаляти об’єкти без витоків пам’яті, маючи лише покажчик на базовий клас.
Перевизначення (заміщення) методу (method overriding) – одна з можливостей, що дозволяє підкласу (спадкоємцю) забезпечувати специфічну реалізацію методу, вже реалізованого в одному з суперкласів (батьківських класів).
Реалізація методу в підкласі перевизначає (заміщає) його реалізацію в суперкласі, описуючи метод з тією ж сигнатурою. Версія методу, яка буде виконуватись, визначається об’єктом, використовуваним для його виклику. Якщо виклик методу походить від об’єкта батьківського класу, то виконується версія методу батьківського класу, якщо ж об’єкт підкласу викликає метод, то виконується версія спадкоємця.

Download 1,18 Mb.

Do'stlaringiz bilan baham:
1   ...   27   28   29   30   31   32   33   34   ...   37




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish