Подписаться на уведомления о новых комментариях
Подробнее в этой категории:
Если попытаться перегрузить один из операторов, то произойдет ошибка компиляции. Если вы перегружаете оператор ==, то вам следует перегрузить и методы Equals и GetHashCode. При перегрузке преобразования необходимо использовать одно из ключевых слов: implicit или explicit. Эти слова определяют, какой тип преобразования вы собираетесь перегрузить явный или неявный. Естественно, что при определении какого-либо преобразования может быть использован только один из этих двух операторов, так как в неявное преобразование входит и явное. Рассмотрим примеры перегрузки операторов сравнения и преобразования.
Особенность при нерегрузке операторов возникает для операторов сравнения и преобразования. Операторы сравнения нужно перегружать попарно. Так, оператор < нужно перегружать с оператором >, оператор <= необходимо перегружать с оператором >=, а оператор == вместе с оператором !=. P
Ведь C++ позволял определять собственные типы. Вы могли определить тип SuperLong, позволяющий хранить целые числа любой величины. Но тип включает не только возможности инициализации и хранения, но и операции. Несомненно, можно определить набор методов (Add, Div, ..) для вычислительных нужд, но это не будет удобно. С одной стороны человек привык к стандартному виду операторов (+, , ..), а с другой, использование обычных методов увеличивает размер выражения и сделает невозможным его модификацию. Но C++ позволял не только создавать собственные типы, но и перегружать операторы для них. C# не обделен и этой возможностью. Вы можете переопределять большинство операторов. Это делается с использованием статических методов и ключевого слова operator. Рассмотрим пример по переопределения операторов + и для комплексного числа.
На момент появления, язык программирования С не пользовался такой популярностью, как Паскаль или Фортран. Первый идеально подходил для обучения, а второй для математических вычислений. Язык С не имел типов и набора, позволяющих проводить вычислительные операции с большой точностью, а для использования в образовании он был очень «распущенный». С появлением C++ все изменилось.
\ \ \ Перегрузка операторов
Комментариев нет:
Отправить комментарий