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


 

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

44885. Веберовская категория “идеального типа”, возможности ее применения в социологическом анализе 15.49 KB
  Веберовская категория €œидеального типа€ возможности ее применения в социологическом анализе. Вебер использует понятие идеального типа. Вебер предполагал что социологи отбирают в качестве характеристик идеального типа определенные аспекты поведения или институтов которые доступны для наблюдения в реальном мире и преувеличивают их до форм логически понятной интеллектуальной конструкции. Например конкретные бюрократические организации могут не совпадать в точности с элементами идеального типа бюрократии однако знание этого идеального...
44886. Решения по результатам диагностики 26.3 KB
  Решения по результатам диагностики Техническая оценка участков трубопровода должна включать в себя следующие этапы: анализ информации содержащейся в техническом паспорте и банке данных; техническое обследование участка анализ результатов; определение степени опасности дефектов; оценка общего напряженнодеформированного состояния участка и его отдельных мест; оценка работоспособности участка; принятие решений о дальнейшей эксплуатации или ремонте и о технических мероприятиях по восстановлению несущей способности участка. На...
44887. Gesunde Ernährung im Job fällt vielen schwer 25.5 KB
  Den meisten bleibt bei der rbeit schlicht keine Zeit in Ruhe zu essen ht eine Umfrge ergeben. Die Kntine ht ml wieder Nudeln mit Tomtensoße der nächste Imbiss ist ein Döner und Zeit fürs Essen bleibt sowieso kum der Chef drängt schon mit dem nächsten Projekt. So oder so ähnlich geht es vielen Berufstätigen in Deutschlnd.
44888. Политическая жизнь Англии 40.5 KB
  Лидер консерваторо вБенджамин Дизраэли слыл одним из самых ловких политиков страны. внес в парламент законопроект о расширении избирательного права Дизраэли будучи в оппозиции провалил его. Несмотря на большие заслуги Дизраэли перед страной кичливые ториаристократы долгое время не признавали его считая выскочкой Дизраэли происходил из еврейской семьи принявшей христианство. Но по мере укрепления партии авторитет Дизраэли возрастал в 1876 г.
44889. «Гнездо» Аксаковых. Творческий путь С.Т. Аксакова, место и значение его творчества в истории русской литературы 29 KB
  Гнездо Аксаковых. Аксакова место и значение его творчества в истории русской литературы. Аксаков Сергей Тимофеевич 17911859 его сыновья: Константин 18171860 Иван 18231886. Аксаков родился в Уфе в старинной дворянской семье отец – чиновник мать – дочь наместника.
44890. Новое время. Европа в начале нового времени 14.19 KB
  Новое время неразрывно связывается с утверждением €œбуржуазным индустриальным прогрессомâ€. В последнее время многие историки склоняются к мнению что нельзя искусственно отрывать от буржуазной цивилизации такие явления как великие географические открытия реформация и гуманизм научная революция которые дали толчок к зарождению буржуазии.: ранее новое время когда капитализм только зарождался и существовал в виде одного из укладов жизни.
44891. Методика формирования и развития системы понятий о химическом элементе 23.19 KB
  Цель изучения химических производств показать учащимся как достижения науки используются для практических нужд отразить роль науки как движущей силы производства и прогресса. Изучение химических производств позволяет существенно усилить экологическую сторону обучения химии раскрыть возможность реализации и требований экологической безопасности при грамотной организации производства что является важной воспитательной задачей курса химии средней школы. Структура системы понятий об основах химического производства. На этом основании можно...