Полиморфизм. Лекция 6

Содержание

Слайд 2

Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп. Бондарева Л.В.

Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп. Бондарева Л.В.

Слайд 3

Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп. Бондарева Л.В.

Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп. Бондарева Л.В.

Слайд 4

Метод CompTable::CalcVolume

Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп. Бондарева Л.В.

Метод CompTable::CalcVolume Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп. Бондарева Л.В.

Слайд 5

Метод CompTable::Show

Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп. Бондарева Л.В.

Метод CompTable::Show Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп. Бондарева Л.В.

Слайд 6

Вызов обновленных методов -1

Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп.

Вызов обновленных методов -1 Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп. Бондарева Л.В.
Бондарева Л.В.

Слайд 7

Вызов обновленных методов -1

Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп.

Вызов обновленных методов -1 Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп. Бондарева Л.В.
Бондарева Л.В.

Слайд 8

Вызов обновленных методов -1

Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп.

Вызов обновленных методов -1 Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп. Бондарева Л.В.
Бондарева Л.В.

Слайд 9

Вызов обновленных методов -1

Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп.

Вызов обновленных методов -1 Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп. Бондарева Л.В.
Бондарева Л.В.

Слайд 10

Вызов обновленных методов -1

Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп.

Вызов обновленных методов -1 Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп. Бондарева Л.В.
Бондарева Л.В.

Слайд 11

Вызов обновленных методов -2

Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп.

Вызов обновленных методов -2 Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп. Бондарева Л.В.
Бондарева Л.В.

Слайд 12

Вызов обновленных методов -2

Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп.

Вызов обновленных методов -2 Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп. Бондарева Л.В.
Бондарева Л.В.

Слайд 13

Вызов обновленных методов -2

Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп.

Вызов обновленных методов -2 Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп. Бондарева Л.В.
Бондарева Л.В.

Слайд 14

Вызов обновленных методов -2

Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп.

Вызов обновленных методов -2 Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп. Бондарева Л.В.
Бондарева Л.В.

Слайд 15

Вызов обновленных методов -2

Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп.

Вызов обновленных методов -2 Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп. Бондарева Л.В.
Бондарева Л.В.

Слайд 16

Связывание

Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп. Бондарева Л.В.

Связывание

Связывание Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп. Бондарева Л.В.
— это процесс, который используется для конвертации идентификаторов (таких как имена переменных или функций) в адреса.
Все функции имеют свой уникальный адрес.
Когда компилятор (или линкер) встречает вызов функции, он заменяет его инструкцией машинного кода, которая сообщает процессору перейти к адресу функции.

Слайд 17

Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп. Бондарева Л.В.

Раннее

Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп. Бондарева Л.В. Раннее
связывание (или «статическая привязка») означает, что компилятор (или линкер) может напрямую связать имя идентификатора с машинным адресом.
В терминах ООП раннее связывание означает, что объект и вызов функции связываются между собой на этапе компиляции.

Раннее связывание -1

Слайд 18

Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп. Бондарева Л.В.

Достоинство:

Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп. Бондарева Л.В. Достоинство:
выполняется быстрее и обычно требует меньше памяти, чем позднее связывание.
Недостаток: невысокая гибкость.

Раннее связывание -2

Слайд 19

Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп. Бондарева Л.В.

Раннее

Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп. Бондарева Л.В. Раннее связывание -3
связывание -3

Слайд 20

Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп. Бондарева Л.В.

Позднее

Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп. Бондарева Л.В. Позднее
связывание (или «динамическая привязка») означает, что объект и вызов функции связываются между собой на этапе запуска программы.
Позднее связывание достигается в С++ с помощью использо­вания виртуальных функций и производных классов.
Достоинство: высокая гибкость
Недостаток: снижение производительности

Позднее связывание -1

Слайд 21

Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп. Бондарева Л.В.

Оно

Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп. Бондарева Л.В. Оно
может использоваться для поддержки общего интерфейса, позволяя различным объектам иметь свою собственную реализацию этого интерфейса!

Позднее связывание -2

Слайд 22

Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп. Бондарева Л.В.

Позднее

Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп. Бондарева Л.В. Позднее связывание -3
связывание -3

Слайд 23

Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп. Бондарева Л.В.

Позднее

Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп. Бондарева Л.В. Позднее связывание -3
связывание -3

Слайд 24

Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп. Бондарева Л.В.

Позднее

Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп. Бондарева Л.В. Позднее связывание -3
связывание -3

Слайд 25

Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп. Бондарева Л.В.

Пример

Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп. Бондарева Л.В. Пример - 1
- 1

Слайд 26

Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп. Бондарева Л.В.

Пример

Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп. Бондарева Л.В. Пример - 2
- 2

Слайд 27

Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп. Бондарева Л.В.

Пример

Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп. Бондарева Л.В. Пример - 3
- 3

Слайд 28

Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп. Бондарева Л.В.

Пример

Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп. Бондарева Л.В. Пример – 4 (запуск программы)
– 4 (запуск программы)

Слайд 29

Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп. Бондарева Л.В.

Пример

Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп. Бондарева Л.В. Пример – 5 (запуск программы)
– 5 (запуск программы)

Слайд 30

Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп. Бондарева Л.В.

Зачем

Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп. Бондарева Л.В. Зачем нужен virtual?
нужен virtual?

Слайд 31

Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп. Бондарева Л.В.

virtual

Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп. Бондарева Л.В. virtual нужен для полиморфизма
нужен
для полиморфизма

Слайд 32

Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп. Бондарева Л.В.

Виртуальные

Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп. Бондарева Л.В. Виртуальные методы
методы

Слайд 33

Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп. Бондарева Л.В.

Соответствующие

Программирование: ООП. Кафедра ЮНЕСКО по ИВТ ИФН КемГУ, ст.преп. Бондарева Л.В. Соответствующие
методы потомка автоматически становятся
Виртуальными!