Ботва для ИУ-5


№13,14. Операторные функции – члены/не члены класса

К экзамену по информатике запостил Fenix [2007.06.12]  

Перегрузить операторную функцию можно несколькими способами.

1. Как обычную функцию

2. Как функцию-член класса, для которого происходит перегрузка

3. Как функцию, дружественную к этому классу

Бинарный оператор-член класса вызывается объектом, стоящим слева от оператора, что может вызвать проблемы, когда нужный нам класс стоит справа от  оператора, т.е.:

obj + 100 //все работает, так как в объекте obj определена операторная функция-член operator+ 

100 + obj //не работает, так как в классе int не ереопределен оператор +, принимающий параметром объекты нужного типа

Дружественная функция решает эту проблему, так как получает в качестве параметров и число 100 и объект obj

Недружественная функция вобще не катит, по причине отсутствия доступа к закрытым членам класса, а стало быть неудобством реализации.

Каменты: 0  | [+1]

Оставить комментарий



Вы должны авторизоваться чтобы оставлять комментарии.

Вы можете использовать ваш OpenID:

Вы можете использовать HTML-тэги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>