Перегруженные операции - функции-члены против дружественных функций

Если перегруженная операция реализована как функция-член, то ей либо вообще не передаются явно параметры, либо передается один параметр. Дружественной функции - перегруженной операции - передается один, либо два параметра.
Если бинарная операция перегружена как функция-член, то ее первым операндом является объект, который принимает сообщение. Следовательно, явно передается только один параметр.
Если унарная перегруженная операция реализована как функция-член, то ее операндом является принимающий сообщение объект. Таким образом, эта функция-член не имеет явных параметров.
Перегруженная операция не может иметь более двух параметров.

Фунция-член Class X { X operator-() const; // Унарный минус X operator&() const; // Вычисление адреса X operator^() const; // Ошибка: операция ^ -бинарная }; Дружественная функция class Y { friend Y operator-(const Y&); friend Y operator&(const Y&); freind Y operator^(const Y&); };
Class X { X operator-(const X&) const; // бинрный минус X operator&(const X&) const; // побитовое И }; class Y { friend Y operator-(const Y&,const Y&); friend Y operator&(const Y&, const Y&); };

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: