340 __ __________Часть II. Программирование на C++
После спецификатора обязательно ставится двоеточие. В нашем примере функция Function () и данные непосредственно доступны всем пользователям класса. То есть
PUBLIC р;
р.Function() ;
р.data = 5;
представляет собой абсолютно законный пример использования класса PUBLIC. Говорят, что функции и данные в открытой области доступа образуют открытый интерфейс. Открытые данные и функции — это те, которые вы делаете доступными другим программистам, включая себя, с тем, чтобы дать им возможность манипулировать экземплярами вашего класса.
Никаких особых требований к количеству данных или функций в секциях класса не предъявляется — это полностью ваше дело. Поскольку открытый интерфейс доступен всем, то принято, чтобы члены, образующие открытый интерфейс, всегда располагались в классе первыми.
«
! Предупреждение
¦ Класс, состоящий только из закрытых (private) данных или функций — это ¦ вещь в себе. Как бы вы стали манипулировать таким классом?
protected
Действие спецификатора protected (защищенный) очень похоже на действие private. Пользователи класса не имеют доступа к данным или функциям, объявленным защищенными. Однако защищенные члены класса доступны производным классам.
Замечание
Если язык C++ для вас совершенно нов, то продолжайте считать, что наследование — это заимствование производными классами кода своих родительских классов. Просто компилятор избавляет вас от необходимости копировать фрагменты кода в текстовом редакторе. Хотя процесс не столь прост, как автоматическое копирование кода, такого упрощенного представления для нас пока что будет достаточно.
Поскольку спецификатор protected задает чуть-чуть большую свободу доступа к членам класса, чем private, общепринято располагать защищенную секцию второй, следом за открытой. Задание уровня доступа protected в действительности подразумевает, что вы обеспечиваете пользователям класса доступ к этим членам через новые, производные от вашего, классы.
private
Спецификатор private указывает, что попадающие в сферу его действия члены относятся к внутренней механике класса и посторонних не касаются