Полиморфизмом в объектно-ориентированном программировании называется способность объекта отреагировать на некоторый запрос. Поскольку объект реагирует на запросы с помощью своих составных функций, то эта способность реализуется на основе механизма, позволяющего выбирать вызываемые функции не на шаге компиляции программы, а на шаге ее выполнения.
Генерация вызова составной функции на шаге компиляции называется ранним связыванием, а на шаге выполнения – поздним связыванием. Функция, имя которой связывается с соответствующим ей кодом на стадии позднего связывания, называется виртуальной. В языке Си++ полиморфизм реализован на основе виртуальных функций.