Виртуальные функции

Слайд 2

Доступ к обычным методам через указатели

Доступ к обычным методам через указатели

Слайд 3

Доступ к обычным методам через указатели

Доступ к обычным методам через указатели

Слайд 4

Доступ к виртуальным методам через указатели

Доступ к виртуальным методам через указатели

Слайд 5

Доступ к виртуальным методам через указатели

Доступ к виртуальным методам через указатели

Слайд 6

Позднее связывание ptr->show(); Компилятор всегда компилирует вызов функции show() из базового

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

ptr->show();
Компилятор всегда компилирует вызов функции show() из базового класса. Однако

в
программе VIRT компилятор не знает, к какому классу относится содержимое ptr.
Ведь это может быть адрес объекта как класса Derv1, так и класса Derv2. Какую именно версию draw() вызывает компилятор — тоже загадка. На самом деле компилятор не очень понимает, что ему делать, поэтому откладывает принятие решения до фактического запуска программы.
А когда программа уже поставлена на выполнение, когда известно, на что указывает ptr, тогда будет запущена соответствующая версия draw. Такой подход называется поздним связыванием или динамическим связыванием. (Выбор функций в обычном порядке, во время компиляции, называется ранним связыванием или статическим связыванием.)
Позднее связывание требует больше ресурсов, но дает выигрыш в возможностях и гибкости.
Слайд 7

Абстрактные классы и чистые виртуальные функции

Абстрактные классы и чистые виртуальные функции

Слайд 8

Виртуальные функции и класс person

Виртуальные функции и класс person

Слайд 9

Виртуальные функции в графическом примере

Виртуальные функции в графическом примере

Слайд 10

Виртуальные функции в графическом примере

Виртуальные функции в графическом примере

Слайд 11

Виртуальные деструкторы

Виртуальные деструкторы

Слайд 12

Виртуальные базовые классы

Виртуальные базовые классы

Слайд 13

Виртуальные базовые классы

Виртуальные базовые классы

Слайд 14

Дружественные функции как мосты между классами

Дружественные функции как мосты между классами

Слайд 15

Дружественность и функциональная запись

Дружественность и функциональная запись

Слайд 16

Дружественные классы

Дружественные классы