Если функция объявлена виртуальной («virtual»), то при вызове данной функции к объектам базового класса или же к объектам производных классов происходит вызов корректной версии функции, в зависимости к объекту какого класса она вызвана.
Виртуальные функции применяются для:
1. Создания универсальной подпрограммы для управления разноименных объектов, например, если требуется вывести на экран информацию из объектов разных классов.
В С++ возможно перегрузить почти любой оператор. При перегрузке нельзя изменить синтаксис оператора (приоритет, ассоциативность, число операторов). Перегрузку операторов нельзя применить для данных встроенных типов.
Использование шаблонов в С++.
Шаблон - это способ написания единственного определения функции или класса, которое компилятор автоматически транслирует в специальную версию для каждого из типов данных используемых программой.