05.09.2016 Views

Стефан Р. - С++ Для чайников

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!