Почему использование метода printOn() считается менее оптимальным, чем использование friend функции для операций вывода, и в каких ситуациях метод printOn() всё ещё может быть подходящим выбором? — ДейлиПреп