русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Курс лекцій


Дата додавання: 2014-04-22; переглядів: 1100.


1. Перезавантаження операцій

а) перетворює операції (operator) C++ для роботи з об’єктами

б) надає операціям С++ більше даних, ніж вони можуть обробити

в) надає нове значення існуючим у С++ операціям

г) створює нові операції С++

 

2. Скільки аргументів потрібно для визначення перезавантаженої унарної операції?

а) жодного

б) один

в) два

 

3. Припустимо, що існує клас С з об’єктами obj1, obj2, obj3. Вираз

obj1=obj2-obj3

працює правильно. Тут перезавантажена операція повинна:

а) приймати два аргументи

б) повертати значення

в) створювати іменований тимчасовий об’єкт

г) використовувати об’єкт, що викликав операцію, як операнд

 

4. Існують два оголошення, призначені для додавання двох об’єктів класу String.

void add(String s1, Strings2);

String operator+(String s)

Імені функції add відповідає:

а) аргумент (s)

б) об’єкт, що викликає операцію

в) операція (+)

г)значення, що повертається (типу String)

д) нема відповідності

 

 

5. Існують два оголошення, призначені для додавання двох об’єктів класу String.

void add(String s1, Strings2);

String operator+(String s)

Повернутому значенню типу void відповідає::

а) аргумент (s)

б) об’єкт, що викликає операцію

в) операція (+)

г)значення, що повертається (типу String)

д) нема відповідності

 

6. Існують два оголошення, призначені для додавання двох об’єктів класу String.

void add(String s1, Strings2);

String operator+(String s)

Першому аргументу s1 відповідає::

а) аргумент (s)

б) об’єкт, що викликає операцію

в) операція (+)

г)значення, що повертається (типу String)

д) нема відповідності

 

7. Існують два оголошення, призначені для додавання двох об’єктів класу String.

void add(String s1, Strings2);

String operator+(String s)

Другому аргументу s2 відповідає::

а) аргумент (s)

б) об’єкт, що викликає операцію

в) операція (+)

г)значення, що повертається (типу String)

д) нема відповідності

 

8. Існують два оголошення, призначені для додавання двох об’єктів класу String.

void add(String s1, Strings2);

String operator+(String s)

J,Об’єкту, що викликає функцію, відповідає::

а) аргумент (s)

б) об’єкт, що викликає операцію

в) операція (+)

г)значення, що повертається (типу String)

д) нема відповідності

 

9. Чи істинне твердження: перезавантажена операція завжди вимагає на один аргумент менше, ніж кількість операндів?

а) так

б) ні

 

10. Коли ви перезавантажуєте операцію арифметичного присвоювання, то результат:

а) передається об’єкту справа від операції

б) передається об’єкту зліва від операції

 

11. Для перетворення від визначеного користувачем класу до основного типу можна використати:

а) вбудовану операцію перетворення

б) конструктор з одним аргументом

в) перезавантажену операцію =

г) операцію перетворення, що є членом класу

 

12. Для перетворення від основного типу до визначеного користувачем класу можна використати:

а) вбудовану операцію перетворення

б) конструктор з одним аргументом

в) перезавантажену операцію =

г) операцію перетворення, що є членом класу

 

13. Чи є істинним твердження: вираз objA=objB буде причиною помилки компілятора, якщо об’єкти належать до різних типів?

а) так

б) ні

в) так, якщо відсутня операція перетворення типів

 

14. Якщо об’єкт objA належить до класу А, об’єкт objectB - до класу B, ми хочемо записати objA=objB і помістити функцію присвоювання в клас А, то який тип процедури можна використати?

а) вбудовану операцію перетворення

б) конструктор з одним аргументом

в) перезавантажену операцію =

 

15. Чи істинний вираз: компілятор не протестуватиме, якщо ми перезавантажимо операцію * для виконання ділення?

а) так

б) ні, але це зробить лістінг програми менш читабельним

 

 

Курс лекцій

з предмету «Об’єктно орієнтоване програмування»

 

 

Частина 3 – «Об’єктно орієнтоване програмування в мові C++»


 

 

Зміст

Тема 11. Успадковування в С++

Тема 12. Вказівники

Тема 13. Віртуальні функції


Тема 11. Успадковування в С++

 

Вступ

Базовий і похідний класи

Визначення похідного класу

Доступ до базового класу

Специфікатор доступу protected

Недоліки використання специфікатора protected

Конструктори похідного класу

Перезавантаження функцій

Складніший приклад успадковування

Ієрархія класів

Загальне і приватне успадковування

Комбінації доступу

Рівні успадковування

Множинне успадковування

Методи класів та множинне успадковування

Конструктори при множинному успадковуванні

Невизначеність при множинному успадковуванні

Включення: класи в класах

Роль успадковування при розробці програм

Підсумок

Питання по темі

 

Вступ

Найбільш значимою після класів можливістю ООП є успадковування. Як ми вже знаємо з вивчення Паскалю, це процес створення нових класів, які називаються дочірніми, спадкоємцями або похідними класами з уже існуючих – батьківських або базових. Похідний клас одержує всі можливості базового класу, але може також бути удосконаленим за рахунок додавання власних. базовий клас при цьому залишається незмінним.

В деяких мовах базовий клас називається надкласом, а похідний – підкласом.

Виграш від успадковування полягає в тому, що воно дозволяє використовувати існуючий код кілька раз. Маючи написаний і відлагоджений базовий клас, ми можемо більше його не модифікувати, при цьому механізм успадковування дозволить нам пристосувати його для роботи в різних ситуаціях.

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

 


<== попередня лекція | наступна лекція ==>
Підсумок | Базовий і похідний класи


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн