Перегрузка оператора

Автор: Randy Alexander
Дата создания: 1 Апрель 2021
Дата обновления: 1 Июль 2024
Anonim
Перегрузка операторов пример. ООП. Перегрузка оператора присваивания.  C++ Для начинающих. Урок#83
Видео: Перегрузка операторов пример. ООП. Перегрузка оператора присваивания. C++ Для начинающих. Урок#83

Содержание

Определение - что означает перегрузка оператора?

Перегрузка операторов - это метод, с помощью которого операторы, используемые в языке программирования, реализуются в пользовательских типах с настраиваемой логикой, основанной на передаваемых типах аргументов.

Перегрузка оператора облегчает спецификацию пользовательской реализации для операций, в которых один или оба операнда имеют определенный пользователем класс или тип структуры. Это помогает пользовательским типам вести себя так же, как фундаментальные примитивные типы данных. Перегрузка операторов полезна в тех случаях, когда операторы, используемые для определенных типов, предоставляют семантику, связанную с доменом con, и синтаксическую поддержку, которые можно найти в языке программирования. Он используется для синтаксического удобства, удобочитаемости и удобства обслуживания.

Java не поддерживает перегрузку операторов, за исключением конкатенации строк, для которой она перегружает оператор + внутри.


Введение в Microsoft Azure и Microsoft Cloud | Из этого руководства вы узнаете, что такое облачные вычисления и как Microsoft Azure может помочь вам перенести и запустить свой бизнес из облака.

Techopedia объясняет перегрузку оператора

На операторы ссылаются, используя обозначения операторов в выражениях и функциональные обозначения в объявлениях. Синтаксис, приоритет и ассоциативность оператора не могут быть изменены с помощью пользовательских определений операторов.

Например, операторы в C # классифицируются в зависимости от типа выполняемой ими операции. Некоторые из них перегружаются пользовательскими типами, определяя их в статических функциях-членах и используя ключевое слово operator. Параметры операторной функции представляют операнды, а возвращаемый тип операторской функции представляет результат операции. Перегрузка реализована попарно для операторов, таких как операторы сравнения, такие как "==" и "! =". Метод Equals () для этих операторов должен быть переопределен, чтобы избежать предупреждения компилятора. Перегрузка не должна использоваться для таких операторов, как условные, логические (и !!), присваивания (+ =, - = и т. Д.), Приведения и индексации массива ().

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