Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
ТГВ
Кафедра:
Не вказано

Інформація про роботу

Рік:
2006
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Програмування
Група:
КН-116

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ УКРАЇНИ Національний університет “Львівська політехніка” ЗВІТ до лабораторноі работи № 2 Реалізація абстракцій в мові програмування С++. 1. МЕТА РОБОТИ Мета роботи - Реалізація абстракцій в мові програмування С++. 2. ТЕОРЕТИЧНА ЧАСТИНА Компоненти об’єктно-орієнтовааного проектування. Розрізняють чисто об’єктно-орієнтовані мови та змішані. До перших належать Smalltalk, Ada, Simula, до других С++, CLOS, Об’єктний Паскаль та інші. Введемо визначення п’яти ключових компонент об’єктно-орієнтованого проектування: - Об’єкт - це інкапсульована абстракція, яка включає інформацію про стан і чітко визначену множину протоколу доступу (повідомлення, які опрацьовує об’єкт). - Повідомлення - це спеціальний символ, ідентифікатор або ключове слово з або без параметрів, яке представляє дію. - Клас - Представляє певний тип об’єктів і задається при допомозі опису класу, який визначає змінні стану і протокол доступа до об’єктів даного класу. Класи організуються ієрархічно, причому підкласи наслідують властивості базових класів. В деяких об’ктно-орієнтованих мовах класи - це також і об’єкти. - Екземпляр об’єкта - об’єкти належать до будь-якого класу. Властивості екземпляра об’єкта визначаються описом класу. - Метод - метод існує для кожного повідомлення, визначеного для деякого класу. Метод визначає реакцію об’єкта на повідомлення. Як правило складається з ряду виразів і може використовувати протокол з іншого класу. 2. Опис абстракцій в мові С++. Мова С++ використовує подібну до об’єктно-орієнтованого проектування термінологію Клас Вводить новий тип даних Об’єкт Змінна типу className Дані стану Об’являються в опису класу і називаються членами Повідомлення Повідомлення, які об’єкт може опрацювати, вказуються при допомозі прототипів функцій в описі класу. Прототипи функцій включають ім’я функції, список параметрів та тип, який повертає функція. Метод. Це визначення (реалізіція) функцій. Прототипи функцій і їх визначення разом представляють собою повідомлення, які об’єкт може опрацьовувати. В сукупності вони називаються функціями-членами. До членів класу відносяться функції-члени і поля даних. Підклас Похідний клас. Його суперклас називається базовим класом. Об’єкт містить в собі значення, які відображають його внутрішній стан. Крім того він містить дані про спосіб обробки повідомлень, які він отримує. В об’єкті інкапсульовані всі властивості абстракції, включаючи значення абстракцій даних (змінні стану) і функціональні абстракції (повідомлення і методи). Для об’єктів бажані наступні властивості: Чітка границя Ця границя визначає область бачення інкапсуляції. В С++ область бачення інкапсуляції для об’єкту поширюється на опис його класу, включаючи опис базових класів. Добре розроблений інтерфейс Інтерфейс описує те, як об’єкт взаємодіє з іншими об’єктами або сегментами програми. В С++ інтерфейс задається за допомогою прототипів функцій-членів. Як правило, інші об’єкти можуть здійснювати доступ до об’єкта тільки через такий контрольований інтерфейс. Захищений внутрішній вигляд. Внутрішній вигляд об’єкта невидимий для інших об’єктів і не може бути змінений ними. В С++ цей захист є гнучким і може керуватися завдяки використанню концепції закритих, захищених і відкритих розділів опису класу. Для цієї ж цілі використовується принцип дружніх класів і функцій. 3. Перегрузка функцій та операцій. Перегрузка функцій Перегрузка функцій означає, що одне і теж ім’я функції може використовуватися для передачі повідомлень об’єктам різних класів, і що кожен об’єкт буде реагувати на повідомлення певним чином. Функції С++, які не є частиною протоколу опису класу, можуть бути перегружені. Функції в середині опису класу також можуть бути перегружені. Для цих перегрузок діють такі правила: імена функцій можуть бути перегружені в межах однієї області бачення. Компілятор відрізняє одну функцію від іншої по її сигнатурі. Сигнатура функції задається числом, порядком та типами параметрів. Функції не можуть бути перегружені за типом значення, що повертається. При перегрузці функцій в похідних класах (використання того ж імені функції, що і в базовому класі) списки параметрів функцій можуть співпадати. Детальний розгляд цього випадку виходить за межі Лаб.р.№2. Перегрузка операцій. С++ надає механізм перегрузки операцій шляхом визначення функцій з ключовим словом operator. Розрізняють бінарні та унарні операції. Бінарна операція (напр. +, -, = і т. д.) може бути визначена чи як функція-член, яка отримує один параметр, або як глобальна функція, яка отримує два параметра. Таким чином, для будь-якої бінарної операції = вираз а = b може інтерпритуватися як a.operator=(b) або як operator=(a,b). Унарне операція (напр. !, ++, -- і т. Д.), префіксна або постфіксна, може бути визначена як функція-член, що не отримує параметрів, або як глобальна функція, що отримує один параметр. Функція-операція , яка має першим параметром основний тип, не може бути функцією-членом. Розглянемо, наприклад, додавання змінної цілого типу х з цілим 5: якщо правильно оголосити функцію-член +, то вираз х+5 може бути проінтерпритовано як х.operator(5), але з виразом 5+х це вже не може бути зроблене, оскільки це означало б 5.оperator(х), що невірно.
Антиботан аватар за замовчуванням

31.03.2013 14:03-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!