Полиморфная функция - функция у которой хотя бы один аргумент является полиморфным.
Полиморфный аргумент - переменная, принимающая значения разных типов.
Всякие подвиды полиморфизма:
- Ad-hoc - функция ведет себя по разному для аргументов разных типов. Пример - практически любая виртуальная функция.
- Параметрический - функция ведет себя одинаково для аргументов разных типов. Пример - добавляем элемент в гетерогенный контейнер.
- Естественный полиморфизм - информация о типе переменной приходит вместе с переменной.
- Искуственный - информация о типе переменной приходит отдельно. Пример - printf плюсовый.
- Статический - типы известны во время компиляции.
- Динамический - типы во время компиляции не известны.
Теперь что такое виртуальная функция.
Это ad-hoc полиморфная функция по одному (неявному - this) аргументу. Все.
Комментариев нет:
Отправить комментарий