Зміст:
Визначення - Що означає перевантаження оператора?
Перевантаження оператора - це техніка, за допомогою якої оператори, що використовуються в мові програмування, реалізуються у визначених користувачем типах з індивідуально налаштованою логікою, яка базується на типах переданих аргументів.
Перевантаження оператора полегшує специфікацію визначеної користувачем реалізації для операцій, де один або обидва операнди призначені для користувача класом або типом структури. Це допомагає визначеним користувачем типам поводитись так само, як основні примітивні типи даних. Перевантаження оператора корисно в тих випадках, коли оператори, що використовуються для певних типів, надають семантику, пов'язану з контекстом домену та синтаксичною підтримкою, як це знайдено в мові програмування. Він використовується для синтаксичної зручності, читабельності та ремонтопридатності.
Java не підтримує перевантаження оператора, за винятком конкатенації рядків, для якої вона внутрішньо перевантажує оператор +.
Техопедія пояснює перевантаження оператора
Оператори посилаються, використовуючи позначення операторів у виразах та функціональні позначення в деклараціях. Синтаксис, пріоритет та асоціативність оператора не можуть бути змінені за допомогою визначених користувачем декларацій оператора.
Наприклад, оператори в C # класифікуються залежно від типу операції, яку вони виконують. Деякі з них перевантажуються у визначених користувачем типах, визначаючи їх у статичних функціях членів та використовуючи ключове слово оператора. Параметри функції оператора представляють операнди, тоді як тип повернення функції оператора представляє результат операції. Перевантаження реалізується парами для операторів, таких як оператори порівняння типу "==" та "! =". Метод Equals () для цих операторів повинен бути скасований, щоб уникнути попередження компілятора. Перевантаження не слід використовувати для таких операторів, як умовна, логічна (і !!), призначення (+ =, - = і т.д.), індексація кастингу та масиву ().
Настійно рекомендується здійснювати перевантаження оператора таким чином, щоб отримані результати були інтуїтивно зрозумілими, коли реалізація оператора за замовчуванням буде реалізована. Деякі математичні правила, такі як комутативний закон, застосовний до виразів з двома операндами, не можуть бути застосовані при використанні при перевантаженні для типів, оскільки вони визначені лише для числових операндів.
