Вы можете считать перегрузку оператора своего рода перегрузкой метода / функции. Это часть полиморфизма в объектно-ориентированном языке.
С перегрузкой каждый класс объектов работает как примитивные типы, что делает классы более естественными для использования, просто как 1 + 2.
Скажем, комплексное число, класс, Комплекс.
Комплекс (1,2i) + Комплекс (2,3i) дает комплекс (3,5i).
Комплекс 5 + (3, 2i) дает комплекс (8, 2i).
Комплекс (2, 4i) + -1,8 дает комплекс (0,2, 4i).
Так гораздо проще использовать класс. Если перегрузка оператора отсутствует, вы должны использовать кучу методов класса, чтобы обозначить «добавить» и сделать нотацию неуклюжей.
Перегрузка оператора должна быть тщательно определена; в противном случае приходит смятение. Например, оператор «+» является естественным для добавления чисел, времени, даты или объединения массива или текста. Добавление оператора «+» в класс Mouse или Car может не иметь никакого смысла. Иногда некоторые перегрузки могут не казаться естественными для некоторых людей. Например, Array (1,2,3) + Array (3,4,5). Некоторые могут ожидать Array (4,6,8), но некоторые ожидают Array (1,2,3,3,4,5).