среда, 13 марта 2019 г.

Полиморфизм в C++

Все время путаюсь в разновидностях этого понятия, поэтому сделаю короткую запись. Ориентируюсь на этот пост.

Статический полиморфизм - когда во время компиляции известно, какой код будет выполняться (или какая функция будет вызвана) в данном месте программы. Пример - перегрузка функций. Использование шаблонов - сюда же.

Динамический полиморфизм (overriding) - какой конкретно метод будет вызван, станет известно во время выполнения.

Иногда выделяют параметрический полиморфизм - шаблоны. Его имеет смысл выделять, потому что для полиморфного поведения шаблона  необходимо указать параметр, а в других выидах полиморфизма - не нужно.

Автор поста определяет понятие полиморфизма очень коротко: множество функций с одинаковым названием.

Комментариев нет: