Перегрузка операций презентация

Содержание

Перегрузка операций Перегрузка операций является исключительно синтаксическим удобством. Допустим, с объектами какого-то класса нам нужно выполнить операции: C = (A + B) * D; Без перегрузки это будет выглядеть как-то

Слайд 1Перегрузка операций


Слайд 2Перегрузка операций
Перегрузка операций является исключительно синтаксическим удобством.
Допустим, с объектами какого-то

класса нам нужно выполнить операции:
C = (A + B) * D;
Без перегрузки это будет выглядеть как-то так:
С = D.Multiply(A.Add(B));

Слайд 3Перегрузить можно такие операции как :
унарные +, -, !, ~,

++, --, true, false
бинарные +, -, *, /, %, &, |, ^, <<, >>, ==, !=, >, <, >=, <=

Слайд 4Перегрузка операций
При перегрузке бинарной операции автоматически перегружается соответствующая операция с присваиванием

(например, при перегрузке операции + перегрузится и операция +=).

Слайд 5Перегрузка операций
Некоторые операции могут быть перегружены только парами: == и !=,

> и <, >= и <=, true и false.

Слайд 6Для каких классов есть смысл определять такие операции?
Понятно, что нет

смысла складывать CPet (питомцев) или CStudent (студентов) – но их можно сравнивать!

Слайд 7Для каких классов есть смысл определять такие операции?
практически любой объект

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

Слайд 8Перегрузка операций
Для перегрузки операций используется специальный статический метод, имя которого образовано

из ключевого слова operator и знака операции. Количество формальных параметров метода зависит от типа операции: унарная операция требует одного параметра, бинарная – двух. Метод обязательно должен иметь модификатор доступа public.

Слайд 9Класс комплексных чисел


Слайд 10Класс комплексных чисел


Слайд 11Перегрузка операций
Параметры метода перегрузки - по значению.
Тип формальных параметров и

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

Слайд 12Внесем некоторые изменения в класс Complex:


Слайд 13Перегрузка операций
Любой класс может перегрузить операции true и false. Операции перегружаются

парой, тип возвращаемого значения операций – булевский. Если в классе выполнена подобная перегрузка, объекты класса могут использоваться как условия в операторах условного перехода или циклов (т.е. объект может быть истинным или ложным). При вычислении условий используется перегруженная версия операции true.

Слайд 14Класс комплексных чисел


Слайд 15Класс комплексных чисел


Слайд 16Класс комплексных чисел
Если оба < 0 будет ложь.


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

и явного приведения типов. При этом используется следующий синтаксис:
public static implicit operator <целевой тип>(<привод.тип> <имя>)
public static explicit operator <целевой тип>(<привод.тип> <имя>)

Слайд 18Перегрузка операций
Ключевое слово implicit используется при перегрузке неявного приведения типов, а

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

Слайд 19Класс комплексных чисел


Слайд 20Класс комплексных чисел


Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика