Это не отменяет, потому что вы не изменяете функциональность существующих операторов. Например, вы не можете изменить действия 1 + 1
при перегрузке операторов.
Перегрузка операторов позволяет вам определять новые операторы. Например, вы можете определить +
, который работает с двумя массивами int (при условии, что ваш язык еще не поддерживает это). Если вы думаете об операторе +
как о функции, существующие операторы +
могут иметь подписи:
double +(double, double)
int +(int, int)
string +(string, string)
Теперь вы добавляете новый оператор:
int[] +(int[], int[])
Эти «функции» имеют одинаковое имя +
, но разные параметры. Это похоже на ситуацию с перегрузкой, поэтому языковая функция называется перегрузкой оператора.