340 __ __________Часть II. Программирование на C++

После спецификатора обязательно ставится двоеточие. В нашем примере функция Function () и данные непосредственно доступны всем пользователям класса. То есть

PUBLIC р;

р.Function() ;

р.data = 5;

представляет собой абсолютно законный пример использования класса PUBLIC. Говорят, что функции и данные в открытой области доступа образуют открытый интерфейс. Открытые данные и функции — это те, которые вы делаете доступными другим программистам, включая себя, с тем, чтобы дать им возможность манипулировать экземплярами вашего класса.

Никаких особых требований к количеству данных или функций в секциях класса не предъявляется — это полностью ваше дело. Поскольку открытый интерфейс доступен всем, то принято, чтобы члены, образующие открытый интерфейс, всегда располагались в классе первыми.

«

! Предупреждение

¦ Класс, состоящий только из закрытых (private) данных или функций — это ¦ вещь в себе. Как бы вы стали манипулировать таким классом?

protected

Действие спецификатора protected (защищенный) очень похоже на действие private. Пользователи класса не имеют доступа к данным или функциям, объявленным защищенными. Однако защищенные члены класса доступны производным классам.

Замечание

Если язык C++ для вас совершенно нов, то продолжайте считать, что наследование — это заимствование производными классами кода своих родительских классов. Просто компилятор избавляет вас от необходимости копировать фрагменты кода в текстовом редакторе. Хотя процесс не столь прост, как автоматическое копирование кода, такого упрощенного представления для нас пока что будет достаточно.

Поскольку спецификатор protected задает чуть-чуть большую свободу доступа к членам класса, чем private, общепринято располагать защищенную секцию второй, следом за открытой. Задание уровня доступа protected в действительности подразумевает, что вы обеспечиваете пользователям класса доступ к этим членам через новые, производные от вашего, классы.

private

Спецификатор private указывает, что попадающие в сферу его действия члены относятся к внутренней механике класса и посторонних не касаются