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


 

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

10523. Международно-правовое регулирование ответственности морского перевозчика за не сохранность груза 29 KB
  Международноправовое регулирование ответственности морского перевозчика за не сохранность груза. Основные принципы: полная реституция; ответственность за действия своих служащих как за свои собственные; в свободном контракте может быть установлено ус...
10524. Обязанности перевозчика. Обстоятельства, освобождающие перевозчика от ответственности 56 KB
  Обязанности перевозчика 2. Забота о грузе на всех этапах перевозки. Была: если груз в непрочной упаковке - то капитан должен проявлять всю осторожность. Вопрос: когда начинается ответственность Правила ГВ: от погрузки до выгрузки. Но - это долгий процесс. По ГВ: е
10525. Морское страхование 28 KB
  Морское страхование Страхование - способ возмещения случайных потерь. Страхование делится на 4 вида: самострахование государственное коммерческое осуществляют специалисты страховых компаний взаимное добровольные ассоциации судовладельцев...
10526. Страхование. Участники отношений страхования 45.5 KB
  Страхование Страховая премия - это цена страхования. Та плата которую страхователь платит страховщику: а страховая премия: большая и один раз, б страховые взносы: по частям. Страховое возмещение - то возмещение которое страховщик выплачивает страхователю при...
10527. Случаи, когда договор страхования может быть расторгнут 41 KB
  Случаи когда договор страхования может быть расторгнут. Срочный договор: заключается на год. Но если страховой случай наступил то он потом прекращается после выплаты страховки. В результате гибели застрахованного имущества по причинам иным чем страховой случ...
10528. Страхование грузов: КАРГО 39.5 KB
  Существуют районы которые не покрываются страхованием: ─ Юг: ближе к 60 параллели - Север: выше 70 параллели - Финский залив - Гудзон. Страхование грузов: КАРГО. Основные принципы - такие же. В чем отличие: Страхователями грузов могут быть продавец или по...
10529. Коммерческие условия пассажирских перевозок 32.5 KB
  Коммерческие условия пассажирских перевозок. Три категории: Богатые. Курьеры. Бедные. Не выдержало конкуренции с авиацией. Появилось два вида: паромное круизное. Особенность паромов короткие морские. Каюты минимальных р...
10530. Социальная педагогика 27 KB
  Педагогическая деятельность это одна из сторон профессиональной деятельности специалиста по социальной работе. Педагогическая деятельность специалиста направлена на превращение неуправляемой неорганизованной деятельности члена социального сообщества в управляему...
10531. Социальная педагогика: предмет и основные понятия 109 KB
  Социальная педагогика: предмет и основные понятия План. 1. Основная функция и предмет педагогики. 2. Основная функция и предмет социальной педагогики. 3. Основные понятия социальной педагогики. 1. Основная функция и предмет педагогики. Область любой проф