Similar presentations:
Полиморфизм. Лекция 6
1.
ПолиморфизмЛекция 6
2.
Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФНКемГУ, ст.преп. Бондарева Л.В.
2
3.
Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФНКемГУ, ст.преп. Бондарева Л.В.
3
4.
Метод CompTable::CalcVolumeПрограммирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН
КемГУ, ст.преп. Бондарева Л.В.
4
5.
Метод CompTable::ShowПрограммирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН
КемГУ, ст.преп. Бондарева Л.В.
5
6.
Вызов обновленных методов -1Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН
КемГУ, ст.преп. Бондарева Л.В.
6
7.
Вызов обновленных методов -1Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН
КемГУ, ст.преп. Бондарева Л.В.
7
8.
Вызов обновленных методов -1Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН
КемГУ, ст.преп. Бондарева Л.В.
8
9.
Вызов обновленных методов -1Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН
КемГУ, ст.преп. Бондарева Л.В.
9
10.
Вызов обновленных методов -1Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН
КемГУ, ст.преп. Бондарева Л.В.
10
11.
Вызов обновленных методов -2Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН
КемГУ, ст.преп. Бондарева Л.В.
11
12.
Вызов обновленных методов -2Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН
КемГУ, ст.преп. Бондарева Л.В.
12
13.
Вызов обновленных методов -2Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН
КемГУ, ст.преп. Бондарева Л.В.
13
14.
Вызов обновленных методов -2Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН
КемГУ, ст.преп. Бондарева Л.В.
14
15.
Вызов обновленных методов -2Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН
КемГУ, ст.преп. Бондарева Л.В.
15
16.
СвязываниеСвязывание — это процесс, который используется для
конвертации идентификаторов (таких как имена переменных или
функций) в адреса.
Все функции имеют свой уникальный адрес.
Когда компилятор (или линкер) встречает вызов функции, он
заменяет его инструкцией машинного кода, которая сообщает
процессору перейти к адресу функции.
Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН
КемГУ, ст.преп. Бондарева Л.В.
16
17.
Раннее связывание -1Раннее связывание (или «статическая привязка») означает, что
компилятор (или линкер) может напрямую связать имя
идентификатора с машинным адресом.
В терминах ООП раннее связывание означает, что объект и вызов
функции связываются между собой на этапе компиляции.
Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН
КемГУ, ст.преп. Бондарева Л.В.
17
18.
Раннее связывание -2Достоинство: выполняется быстрее и обычно требует меньше
памяти, чем позднее связывание.
Недостаток: невысокая гибкость.
Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН
КемГУ, ст.преп. Бондарева Л.В.
18
19.
Раннее связывание -3Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН
КемГУ, ст.преп. Бондарева Л.В.
19
20.
Позднее связывание -1Позднее связывание (или «динамическая привязка») означает,
что объект и вызов функции связываются между собой на этапе
запуска программы.
Позднее связывание достигается в С++ с помощью использования
виртуальных функций и производных классов.
Достоинство: высокая гибкость
Недостаток: снижение производительности
Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН
КемГУ, ст.преп. Бондарева Л.В.
20
21.
Позднее связывание -2Оно может использоваться для поддержки
общего интерфейса, позволяя различным
объектам иметь свою собственную
реализацию этого интерфейса!
Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН
КемГУ, ст.преп. Бондарева Л.В.
21
22.
Позднее связывание -3Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН
КемГУ, ст.преп. Бондарева Л.В.
22
23.
Позднее связывание -3Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН
КемГУ, ст.преп. Бондарева Л.В.
23
24.
Позднее связывание -3Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН
КемГУ, ст.преп. Бондарева Л.В.
24
25.
Пример - 1Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН
КемГУ, ст.преп. Бондарева Л.В.
25
26.
Пример - 2Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН
КемГУ, ст.преп. Бондарева Л.В.
26
27.
Пример - 3Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН
КемГУ, ст.преп. Бондарева Л.В.
27
28.
Пример – 4 (запуск программы)Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН
КемГУ, ст.преп. Бондарева Л.В.
28
29.
Пример – 5 (запуск программы)Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН
КемГУ, ст.преп. Бондарева Л.В.
29
30.
Зачем нужен virtual?Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН
КемГУ, ст.преп. Бондарева Л.В.
30
31.
virtual нужендля полиморфизма
Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН
КемГУ, ст.преп. Бондарева Л.В.
31
32.
Виртуальные методыПрограммирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН
КемГУ, ст.преп. Бондарева Л.В.
32
33.
Соответствующие методы потомка автоматическистановятся
Виртуальными!
Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН
КемГУ, ст.преп. Бондарева Л.В.
33
34.
Как это работаетПрограммирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН
КемГУ, ст.преп. Бондарева Л.В.
34
programming