Подготовительный курс по C++ разработке (OTUS PreC++) Урок 15

Автор Lyudmila Yeriomenko
Подготовительный курс по C++ разработке (OTUS PreC++) Урок 15

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

Советов А насчёт перегрузки перегрузка операторов с использованием функций не членом классов обязательно затронем и перегрузка оператора круглые скобки перегрузка операторов плюсах их можно перегружать для классовых типов определяемых программистом принципиальной выигрыш такое перегрузка операторов он состоит в том, что позволяется органично интегрировать новые типы данных в среду программирования перегружая оператор можно определить его для такого конкретного класса ну к примеру класс которая определяет связанный список может использовать оператор Plus сложение для добавления объекта к списку класс который. Так может использовать оператор плюс для записи объектов. СТ в каком-нибудь другом классе тоже оператор Plus мог бы служить и совершенно иную цель при перегрузке оператор одно из оригинальных его значение не теряется перегруженный оператор в своём новом качестве работает как совершенно новый оператор поэтому перегрузка оператора + для обработки например.

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

Ну или хэштег его можно назвать алименты представляет собой тип значение возвращаемого задана. Операция Ы хотя в принципе может быть абсолютно любым типом значения возвращаемого функцией оператор честно совпадает с именем класса для которого перегружается данной оператор. Ну такая вот собственно и корреляция облегчает использование перегружена оператора в составленных выражений как будет показано дальше конкретное значение элемента аргументов определяется. С какими факторами операторная. Функция может быть членом класса. Ну или же не вы членам класса операторные функции не являющиеся членами класса. Ну часто определяется как друзья операторные функции и функции нечаянно класса различаются по форме перегрузки каждый из вариантов мы рассмотрим в отдельности перегрузка операторов с использованием членов. Ну давайте для начала рассмотрим небольшой пример в следующей программе создается класс. Фредди который поддерживает координаты объектов в пространстве для класса 3D будем её называть перегружается операторы плюс. Ну и оператор присвоения начнем создание самого класса здесь таких закрытых целочисленных значений координат объявляется конструктор который присваивает координат. Дарья есть 2 конструктор которому передаются значение и. Жека эти значения присваиваются X Y Z далее идут две операторные функции члены где есть только один операнд оп-2 1 оперон передаётся неявно дарим мы разберём как раз таки почему и как. Глядя на этот код вида, что операторная функция имеет только один параметр. Хотя перегружается бинарная операция. Дайте объяснение следующим образом при перегрузке бинарные операции с помощью члена и передаётся только один аргумент явно 2 же передается через указатель вниз то есть в строках 567 мы имеем стрелочка и то есть член X связывается с объектом который вызывает данные оператора на функцию во всех случаях не я объект указываемый слева от символ операции который стал причиной вызвано вызова операторные функции объекта располагаемый с правой стороны от символ операции с этой аргументы в общем случае при использовании функции члена для перегрузки унарного оператора параметры в общении используются для перегрузки бинарного только один турнирная помните вопрос переезжать нельзя. Ну в любом случае. Объект который вызывает операторную функцию неявно передаётся через указатель весь. Давайте аналогичным образом перегрузом оператор присвоения. Здесь всё делается точно также за исключением возвращаемого значения и в конце мы с. Вами рассмотрим как раз таки и функции в Main тут происходит объявление 3 объектов класса, а также передачи назначение и. Жека после чего происходит демонстрация работы наших перегруженных операторов продолжаем же перегрузка оператора с использованием функции членов и я вам советую очень сильно восстановить эту программу чтобы в ней поподробней разобраться. Также можно добавить метод вывода значений координат объектов например ну как функцию член чтобы понять как работает механизм функции перегрузка операторов рассмотрим внимательнее предыдущую программу начиная с перегрузом оператора сложения при обработке 2 объектов типа 3D оператором сложение выполняется сложение значений соответствующих координат. Ну и как показано функции оператор плюс. Но заметьте, что — это функция.

0 комментариев
0

Читайте также