Дружественные функции (ООАиП ООП Объектно ориентированное мышление и программирование)

Дружественные функции

Инкапсуляция, как базовое понятие ООП, предполагает сокрытие данных, от не членов объекта, что реализуется при помощи оператор private. Такое полжоение вещей можно обойти, если применить ключевое слово friend перед объявлением фунции внутри классов, к закрытым членам которых она должна иметь доступ. Сама фунция не принадлежит ни одному из классов, которым является дружественной и определяется вне какого-либо класса. Такие функции называются дружественными.
Это позволяет фунции работать с объектами классов, которым является дружественной а также оперировать их полями и методами.
Дружественные фунции получают доступ к скрытым членам класса.
Дружественная фунция объявляется дружественной в класса, к скрытым членам которого она должна получить доступ. Разработчи не имеющий возможности изменять исходный код класса, не может сделать какую либо фунцию дружественной классу, поэтому можно сделать вывод принцип инкапсуляции не нарушается.
Не рекомендуется использовать много дружественных функций.
Домашнее задание: прочитать главу 11 стр. 491-498 и разобрать примеры
Автор: к.п.н. Румянцев Сергей Александрович

← Назад в раздел