Управление доступом к членам класса
Принцип инкапсуляцииобеспечивается вводом в класс областей доступа:
· private(закрытый, доступный только собственным методам),
· public(открытый, доступный любым функциям),
· protected(защищенный, доступный только собственным методам и методам производных классов).
Члены класса, находящиеся в закрытой области (private), недоступны для использования со стороны внешнего кода. Напротив, члены класса, находящиеся в открытой секции (public), доступны для использования со стороны внешнего кода. При описании класса каждый член класса помещается в одну из перечисленных выше областей доступа следующим образом:
classимя_класса {
private:
определение_закрытых_членов_класса
public:
определение_открытых_членов_класса
protected:
определение_защищенных_членов_класса};
Порядок следования областей доступа и их количество в классе – произвольны.
Служебное слово, определяющее первую область доступа, может отсутствовать. По умолчаниюэта область считается private.
В закрытую (private) область обычно помещаются информационные члены, а в открытую (public) область – методы класса, реализующие интерфейс объектов класса с внешней средой. Если какой-либо метод имеет вспомогательное значение для других методов класса, являясь подпрограммой для них, то его также следует поместить в закрытую область. Это обеспечивает логическую целостность информации [5, 8-9].
После описания класса его имя можно использовать для описания объектов этого типа.
Доступ к информационным членам и методам объекта, описанным в открытой секции, осуществляется через объект или ссылку на объект с помощью операции выбора члена класса‘.’. Если работа с объектом выполняется с помощью указателя на объект, то доступ к соответствующим членам класса осуществляется на основе указателя на член класса‘->’. Объекты класса можно определять совместно с описанием класса.
Класс как область видимости
Класс является областью видимости описанных в нем членов класса. Идентификатор члена класса локален по отношению к данному классу. Одноименные идентификаторы членов класса закрывают видимостьсоответствующих внешних идентификаторов.
Операция ‘::’позволяет получить доступк одноименным объектам, внешним по отношению к текущей области видимости, в частности, к глобальным функциям и переменным, следующим образом [5, 8-9]:
имя_класса :: имя_члена_класса или
:: имя – для имен глобальных функций и переменных.
Дата добавления: 2021-07-22; просмотров: 335;