friend функций оправдано?
или это в принципе какой-то костыль?
костыль
Вообще костыль, когда не можешь нормально с соблюдением принципов чистого ООП реализовать
Костыль. Пример использования -- перегрузка бинарных операторов.
operator<<(std::ostream&, Object&)
Не костыль. Использование оправдано в любом случае, когда оно оправдано. Но злоупотреблять не нужно. Характерный пример использования — вывод объектов в стандарные потоки вывода и ввод из них. Эти функции не могут быть мемберами, они определяются как глобальная двухместная функция (2 параметра), и в этом случае чтобы иметь доступ к приватной части класса, функция объявляется friend.
Обсуждают сегодня