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


 

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

6506. Регрессионный анализ 40.01 KB
  Регрессионный анализ Исходные данные Пусть y-случайная переменная, x-неслучайная переменная. - выборка значений (xy), полученная в эксперименте. xi- количество населения в миллионах, yi- число городов в России соответствующие данно...
6507. Подбор закона распределения по опытным данным и проверка его согласия по критериям χ2 и Колмогорова 73.39 KB
  Подбор закона распределения по опытным данным и проверка его согласия по критериям. Выборка случайной величины объёмом...
6508. Кампания по освоению целинных и залежных земель в 1954-1959 гг. 42.17 KB
  Кампания по освоению целинных и залежных земель в 1954-1959 гг. Одним из самых сложных мероприятий Н. С. Хрущева в области сельского хозяйства стала политика освоения целинных и залежных земель. Это была грандиозная программа, которая вплоть до нача...
6509. Средние величины 373.6 KB
  Средние величины. Большое распространение в статистике имеют средние величины.Средние величины характеризуют качественные показатели коммерческой деятельности:издержки обращения,прибыль,рентабельность и др. Средняя...
6511. Статистические таблицы и графики 142.79 KB
  Статистические таблицы и графики Статистические таблицы. Статистические таблицы - это наиболее рациональная форма представления результатов статистической сводки и группировки. Значение статистических таблиц состоит в том, что они позволяю...
6512. Принятие решений: наука и искусство 86 KB
  Принятие решений: наука и искусство Состояние проблемы. Принятие решения рассматривается большинством исследователей как волевой акт формирования последовательности действий, ведущих к достижению цели на основе преобразования исходной информации в с...
6513. Предмет и метод социально-экономической статистики 42 KB
  Предмет и метод социально-экономической статистики Социально-экономическая статистика - это общественная наука. Предмет ее составляет количественная (цифровая) характеристика массовых явлений и процессов общественной жизни, неразрывно связанная...
6514. Принятие решений с позиций личностно-детерминированного подхода 34.5 KB
  Принятие решений с позиций личностно-детерминированного подхода Сообщение посвящено изложению взглядов на психологическую систему принятия решений, включая анализ и оценку современных исследований принятия решений личностью профессионала. Принятие р...