Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ekzamen_OPAM_vidpovidi_teoretichni.doc
Скачиваний:
4
Добавлен:
22.09.2019
Размер:
214.53 Кб
Скачать
  1. Перевантаження бінарних операторів

Бінарний оператор має два операнди. Його виклик виконується об'єктом, розташованим у лівій частині

оператора. Отже, бінарний оператор

a+b

еквівалентний такому оператору.

a.operator+(b)

Таким чином, бінарна операторна функція-член повинна має тільки один параметр, що задає другий операнд

Вказівник this на перший операнд вона одержує неявно.

Для того щоб бінарну операторну функцію можна було застосовувати усередині виразів, необхідно, щоб

вона повертала об'єкт свого класу.

  1. Дружні операторні функції

Функції, що не є членами класу, можуть оперувати тільки з відкритими чле-

нами класу (з розділу public). Щоб забезпечити доступ до закритих членів кла-

су (з розділу private), вводяться дружні функції або функції-друзі. Щоб зроби-

ти функцію "дружньою" класу, необхідно включити її прототип в оголошення

класу із ключовим словом friend. Функція-член одного класу може бути friend-

функцією іншого класу. Прототип дружньої функції записується в оголошення

класів, з якими вона "дружить":

class t1 {

friend void a(); // функція-друг

int b(); // функція-член

};

class t2 {

friend int t1::b(); // функція-член класу t1

//має доступ до всіх закритих полів класу t2

};

  1. Наслідування

 Наслідування - це можливості створювати нові класи об'єктів на базі вже існуючих та таким чином надавати новим класам - 'спадкоємцям' право наслідування властивостей (полів) та методів існуючих класів - 'породжувачів'. 'Спадкоємці' розглядаються як підлеглі (залежні від) 'породжувачам'. 'Спадкоємець' інколи називається похідним типом. Така структура реалізується за допомогою наступної конструкції::     type <ім'я об'єкта - спадкоємцяа>=object(<ім'я об'єкта - породжувача>)       <додаткові поля спадкоємця>       <додаткові методи спадкоємця>       end;   У операціях надання породжувач завжди повинен знаходитись зліва, тому що кількість його полів завжди меньша чи дорівнює кількості полів спадкоємця     <породжувач>:=<спадкоємець>;

  1. Захищене наслідування

Захищене наслідування відрізняється тим, що при ньому публічні члени базового класу є захищеними членами спадкоємця. При власному спадкоємстві всі члени базового класу стають власними членами класу-спадкоємця. Таким чином, користувач похідного класу не може звертатися до членів базового класу, навіть якщо вони оголошені я публічні. 

  1. Відкрите наслідування

Формула (відкритого) успадкування :

  • Підоб'єкт успадковує всі властивості (атрибути) і поведінку (відкриті методи) базового об'єкту

  • Підоб'єкт може мати власні додаткові властивості і поведінку

  • Підоб'єкт не має доступу до закритої частини базового об'єкту

  1. Закрите наслідування

Закрите успадкування  :

  • Підклас має доступ до відкритої і захищеної частини базового класу, але не передає цих прав своїм підкласам

Транзитивне (захищене) успадкування :

  • Підклас передає своїм підкласам доступ до відкритої і захищеної частини базового класу так, як ніби вони складали його захищену частину

  • Об'єкти що не є в цепочці наслідування класу, не мають доступу до захищеної частини.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]