Виртуальные функции (ООАиП ООП Объектно ориентированное мышление и программирование)

Виртуальные функции
С++ позволяет оперировать объектами через указатель ни их родительский класс. Такая систуация может потребовать схожести родительского класса и классов наследников по наличию определенных функций. Чтобы обязать разработчико классов наследников создавать определенные функции, существует миханизм виртуальных функций.
Оперирование функциями классов наследников, через указатель на базвый класс, ввиду невозможности на момент компиляции узнать какую именно функцию запускать, вынуждает компилятор использоваться динамическое (позднее) связывание – когда выбор запускаемой функции откладывается на момент исполнения программы (в этот момент уже становится известно, какому классу наследнику принадлежит функция запускаемая через указатель на класс родитель).
Для обычной (не виртуальной функции) при запуске через указатель на базовый класс запускается реализация этой функции в базовом классе, чтобы запускались в этом случае переопределенные функции классов потомков необходимо в базовом класс объявить эту функцию как виртуальную.
Перед виртуальными функциями при объявлении ставится ключевое слово virtual.
Домашнее задание: прочитать главу 11 стр. 476-481 и разобрать примеры

Автор: к.п.н. Румянцев Сергей Александрович

← Назад в раздел