Объектно-ориентированное программирование
Доступ к обычным методам через указатели
Доступ к обычным методам через указатели
Доступ к виртуальным методам через указатели
Доступ к виртуальным методам через указатели
Позднее связывание
Абстрактные классы и чистые виртуальные функции
Виртуальные функции и класс person
Виртуальные функции в графическом примере
Виртуальные функции в графическом примере
Виртуальные деструкторы
Виртуальные базовые классы
Виртуальные базовые классы
Дружественные функции как мосты между классами
Дружественность и функциональная запись
Дружественные классы
Статические функции
1.08M
Категория: ПрограммированиеПрограммирование

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

1. Объектно-ориентированное программирование

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

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

2

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

3

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

4

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

5

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

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

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

7

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

8

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

9

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

10

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

11

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

12

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

13

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

14

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

15

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

16

17. Статические функции

Всего: 1
Всего: 3
ID: 1
ID: 2
ID: 3
....... конец программы--- ....
Удаление ID 3
Удаление ID 2
Удаление ID 1
17
English     Русский Правила