69710

Перевантаження операторів за допомогою дружніх функцій

Лекция

Информатика, кибернетика и программирование

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

Украинкский

2014-10-09

23 KB

0 чел.

Тема 10: Перевантаження операторів за допомогою дружніх функцій

Оператори можна перенавантажувати за допомогою дружніх функцій, які не являються членами класу. Це означає, що дружні функції не отримують неявно покажчик this. Отже, перевантажена операторна функція отримує параметри явно. Таким чином, при перевантаженні бінарного оператора дружня функція отримує два параметри, а при перевантаженні унарного оператора — один. Першим параметром дружньої функції, що перенавантажує бінарной оператор, є його лівий операнд, а другим — правий операнд.

Наступна програма демонструє перевантаження унарного та бінарного операторів за допомогою дружніх функцій.

 

#include <iostream.h>

class car {

int speed;

public:

car(int nSpeed=0) { speed = nSpeed; }

friend car operator+(car lp, car rp);

friend car operator--(car &ob);

};

car operator+(car lp, car rp) {

car temp;

temp.speed = lp.speed + rp.speed;

return temp;

}

car operator--(car &ob) {

ob.speed--;

 return ob;

}

Якщо дружні функції застосовуються для перевантаження операторів інкременту та декременту, їх операнди слід передавати за допомогою посилань. Це необхідно тому, що дружня функція не отримує покажчика this. Оператор "++", наприклад, повинен модифікувати свій операнд. Якщо перенавантажувати цей оператор за допомогою дружньої функції, як завжди, то операнд буде передаватися по значенню. Це означає, що дружня функція не зможе змінити цей параметр. Проте цю проблему можна вирішити, якщо передати операнд дружній функції за допомогою посилання. В цьому випадку всі зміни усередині функції будуть відбиватися на її фактичному параметрі.


 

А также другие работы, которые могут Вас заинтересовать

22045. Радиорелейные системы передачи. 175 KB
  облучатель в фокусе плоское зеркало парабола фидер облучающая парабола Радиооборудование ПРМ ПРД Радиооборудование Оборудование состоящее из передатчика приемника и антенны называют радиорелейной станцией РРС....
22046. Системы с ЧРК 1.71 MB
  Электрические сигналы при передаче от одного абонента к другому проходит через нелинейные преобразователи усилители промежуточные линейные от понятия линии связи усилители усилители регенераторы узловые АТС линии связи. А это в свою очередь приводит к стандартным длинам участков линии связи через которые необходимо ставить линейные усилители регенераторы восстанавливающие сигнал и необходимое превышение его уровня над шумами. Затухание в линии связи всегда растёт с ростом частоты сигнала. Рекомендуется использовать линии...
22047. Структура многоканальной системы передачи с ЧРК 53 KB
  ГРУППОБРАЗОВАНИЕ уплотнение каналов в системе с ЧРК носит иерархический характер. На основе каналов ТЧ с рассмотренными выше характеристиками строятся следующие групповые каналы тракты: Наименование группы каналов Диапазон занимаемых частот кГц Число каналов ТЧ Число объединяемых групп Предварительная группа ПрГ Первичная группа ПГ Вторичная группа ВГ Третичная группа ТГ Четверичная группа ЧГ 1224 60108 312552 8122044 851612388 3 12 60 300 900 используется редко 4 ПрГ 5 ПГ 5 ВТ 3 ТГ Совокупность устройств...
22048. Одно и двухнаправленные системы передачи 222 KB
  Для компенсации потерь и коррекции фазочастотных искажений сигнала через определенные расстояния в линию включаются линейные усилители. Схемы включения дифференциальных трансформаторов Основное назначение РУ обеспечить передачу сигнала в направлении клемм от 11 к 33 с малыми потерями и прием сигнала с клемм 44 к 11. Конечная величина затухания a43 приводит к тому что часть сигнала из передающей пары проводников переходит в приемные проводники действие на ближнем конце. Неполное согласование РУ на дальнем конце...
22049. Шумы в линии передачи. Расчёт длины усилительного участка. 100.5 KB
  Для такой ЭГЦ средняя за час псофометрическая мощность помехи WЭ10000 пВт или пВт 1 км для международных пВт.23LЭ и тогда Мощности различных видов шумов определяются по следующим формулам: Мощность собственных шумов тепловые шумы линии элементов схем флуктуации электропроводности дробовые шумы электронных приборов и т. Увеличивать длину l усилительного участка по сравнению с нормами МККТТ можно либо увеличивая мощность полезного сигнала но не допуская увеличения нелинейных шумов уменьшая собственные шумы усилителей новая...
22050. Формирование групповых сигналов в системах с ЧРК 173 KB
  Итого любой канал ТЧ в системе с ЧРК может иметь полосу f=4 кГц. Общая ширина должна быть F1= 12f=48 кГц это абсолютная ширина спектра первичной группы. Значит после преобразования НЧ спектра с полосой F1=48 кГц вверх по частоте нижняя граница нового спектра должна быть выше второй гармоники от 48 кГц.
22051. Барокко 43.5 KB
  Барокко К XVII в. широкого распространения достигли мотивы и настроения барокко утверждавшего что человек лишь странник на этой бренной жалкой земле. Это усиление лирического начала особенно заметно в поэзии барокко или в поэзии которая в той или иной степени соприкасалась с барокко. В немецких условиях именно литература барокко в течение длительного времени оказывала решающее воздействие на духовную жизнь страны.
22052. Пастораль, городской роман, шельмовской (плутовской) роман 49.5 KB
  Пастораль городской роман шельмовской плутовской роман Пастораль Пастораль франц. Жанровые формы Ппасторали многообразны: эклога поэма роман; после стихотворной драмы Сказание об Орфее Полициано 1480 развивается драматическая Пастораль принятая особенно в 16 17 вв. Систему поэтики немецкой романной пасторали XVII в. В немалой мере такому положению способствовала также устойчивая репутация пасторального романа как если не вторичной периферийной то все же некой побочной маргинальной ветви в системе немецкого романа XVII в.
22053. Пиетизм 30 KB
  Основателем Пиетизма является Ф. Становление и развитие Пиетизма таким образом детерминировано теми же факторами которые обусловили в свое время оформление протестантизма в целом и которые питают историческую эволюцию мистической традиции см. Основателями и лидерами пиетизма были Ф. Движение Пиетизма началось с молитвенных собраний в доме Шпенера.