You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Глава 16<br />
Защищенные члены класса<br />
не беспокоить!<br />
/3 Э1пой главе...<br />
S Защищенные члены<br />
•/ Чем хороши защищенные члены<br />
S Обращение к защищенным членам<br />
главе 13, "Классы в C++", рассматривалась концепция классов. Ключевое слово<br />
public было описано как часть объявления класса, т.е. просто как то, что следует<br />
делать. В этой главе вы узнаете, что ключевому слову public есть альтернативы.<br />
Защищенные члены<br />
Члены класса могут быть помечены как защищенные, что делает их недоступными<br />
извне класса. В отличие от защищенных, открытые (public) члены класса<br />
доступны для всех.<br />
Зачем нужны защищенные члены<br />
<strong>Для</strong> того чтобы понять смысл защиты членов класса, нужно вспомнить, каковы<br />
цели объектно-ориентированного программирования.<br />
i •/ Зашита внутренних элементов класса от внешних функций. Ведь когда<br />
1 вы проектируете микроволновую печь (или что-нибудь другое), то ос-<br />
? нащаете ее по возможности простым интерфейсом с внешним миром<br />
) и прячете содержимое в металлический ящик. Так делается для того,<br />
| чтобы другие не могли поломать микроволновую печь. Защита членов<br />
1 класса выполняет роль железного ящика.<br />
' S Создание класса, способного полноценно управлять своими внутрен-<br />
I ними членами. Несколько непоследовательно требовать от класса полt<br />
ноценной работы и ответственности за ее результаты и одновременно<br />
позволять внешним функциям манипулировать его внутренними чле-<br />
I нами (это то же самое, что и требовать от создателя микроволновой пе-<br />
\ чи нести ответственность за мои непрофессиональные манипуляции<br />
I с элементами ее внутреннего устройства).<br />
1<br />
S Сокращение до минимума внешнего интерфейса класса. Гораздо проще<br />
i изучать и использовать класс, который имеет ограниченный интерфейс<br />
| (а интерфейсом класса являются его открытые члены). Защищенные<br />
;, члены скрыты от пользователя, и их не надо помнить (в противном<br />
| случае интерфейсом становится весь класс). Такой подход называется<br />
I абстракцией, которая описана в главе 8, "Первое знакомство с указате-<br />
I лями в C++".<br />
Глава 16. Защищенные члены класса: не беспокоить! 171