2014-01-22 2 views
2

Я знаю, что перегрузка параметров и полиморфизм не совпадают. В принципе, полиморфизм позволяет различное поведение, основанное на типе объекта. Итак, в некотором смысле, оператор перегружает не проявление полиморфизма?Перегрузка оператора и разница в полиморфизме

Например, + может использоваться для добавления двух int, и я также могу использовать его для добавления двух переменных-членов класса, также типа int.

+5

Да, перегрузка операторов (и функций) является одним из способов реализации полиморфизма. – juanchopanza

+1

Действительно ли это имеет значение? Это просто слово. –

+1

No @KerrekSB, это не только слово. За словом есть понятие, а полиморфизм - очень важная вещь, которую следует учитывать при написании кода. –

ответ

1

Да, перегрузка оператора также является полиморфизмом.

На самом деле существует три вида полиморфизма:

  • перегрузки реализует то, что называется одноранговых полиморфизма
  • подтипы реализуют включение полиморфизму
  • типичность Реализует параметрический полиморфизм.

одноранговой полиморфизм обычно считается не очень сильным, это только удобно.

+1

В моем мире «ad-hoc polymorphism» относится к стиранию типа a la 'boost :: any' ... но каждый к своему :-) –

+1

http://www.techopedia.com/definition/17481/ad -hoc-polymorphism, http://homepages.feis.herts.ac.uk/~msc_fl/fl-node60.html –

+0

По-видимому, один из интервьюеров сказал, что перегрузка функций применима к функциям с тем же именем, но разные параметры не являются полиморфизмом :/meh. Согласитесь? – Floose

Смежные вопросы