Здравствуйте, phprus, Вы писали:
P>Обходить private — это слишком грязный хак, вместо которого правильнее было-бы написать свою реализацию. Да и постоянность private-компонентов никто не гарантирует.
В данном случае "постоянность" protected-компонентов — тоже никто не гарантирует (см. ниже).
P>P.S. Я всегда считал, что внутренняя реализация — это, то что находится в private, а protected только с очень большой натяжкой можно отнести к внутренней реализации, ведь protected-API напрямую доступно при наследовании. Или я не прав?
Прав в том смысле, что protected по-хорошему должен являться частью интерфейса, но интерфейс к сожалению не совсем формальное понятие, в данном случае он определяется стандартом, а там никаких protected членов нет.