ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В C++ (4-Е ИЗДАНИЕ) (часть 1) онлайн

Полиморфизм и перегрузка

Обратите внимание на то, что операции присваивания = и сложения + для типа position должны выполнять действия, отличающиеся от тех, которые они выпол-

няют для объектов стандартных типов, например int. Объекты position1 и прочие не являются стандартными, поскольку определены пользователем как принадле- жащие классу position. Как же операторы = и + распознают, какие действия необ- ходимо совершить над операндами? Ответ на этот вопрос заключается в том, что мы сами можем задать эти действия, сделав нужные операторы методами класса position.

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

 

39