Cтраница 1
Спецификаторы доступа к элементу public и private ( а также, как мы увидим в главе 9 Наследование, protected - защищенные) используются для управления доступом к данным-элементам класса и функциям-элементам. По умолчанию режим доступа для классов - private ( закрытый), так что все элементы после заголовка класса и до первого спецификатора доступа являются закрытыми. После каждого спецификатора режим доступа, определенный им, действует до следующего спецификатора или до завершающей правой скобки () определения класса. Спецификаторы private, public и protected могут быть повторены, но такое употребление редко и может привести к беспорядку. [1]
![]() |
Друзья могут иметь доступ к закрытым элементам класса ( часть 1 из 2. [2] |
Спецификаторы доступа к элементам private, protected и public не имеют отношения к объявлениям дружественности, так что эти объявления дружественности могут помещаться в любом месте в описании класса. [3]
Спецификаторы доступа связывают со свойством методы ( функции) чтения и записи. Когда значение свойства считывается или изменяется, автоматически вызывается функция, связанная с этим свойством. [4]
Спецификатор доступа private делает переменные, определенные позже, закрытыми. Таким образом, они доступны только функциям-членам класса. Подобно спецификатору доступа public, рассмотренному ранее, спецификатор private воздействует на все объявления, стоящие после него, пока не встретится другой спецификатор. Следовательно, такое определение делает переменные Left, Top, Right и Bottom закрытыми, а функцию Draw открытой. Заметим: в действительности не требуется помещать спецификатор private в начале определения класса, потому что члены класса по умолчанию являются закрытыми. Однако включение спецификатора private облегчает чтение программы. [5]
Спецификаторы доступа только ограничивают доступ внешнего, по отношению к данному модулю, программного кода к некоторым членам классов, объявленных в разделе интерфейса вашего модуля. Это означает, что если два класса находятся в одном и том же модуле, то их частные поля защитить невозможно. [6]
Спецификаторы доступа к элементам всегда оканчиваются двоеточием (:) и могут многократно появляться в определении класса. [7]
После спецификатора доступа к элементам private следуют три целых элемента. Это говорит о том, что эти данные-элементы класса являются доступными только функциям-элементам класса и, как мы увидим в следующей главе, друзьям класса. Обычно данные - элементы перечисляются в части private, а функции-элементы - в части public. Как мы увидим далее, можно иметь функции-элементы private и данные public; последнее не типично и считается в программировании дурным вкусом. [8]
Использование спецификаторов доступа к элементам public, protected и private лишь по одному разу в любом определении класса позволяет избежать путаницы. [9]
В данном случае спецификатор доступа не указан, так что все подя и функция ToStr доступны пользователю. Поля Fam, Nam, Par содержат фамилию, имя, отчество сотрудника, поле Year - год рождения, поле Sex характеризует пол ( true - мужской, false - женский), поле Dep определяет отдел, в котором работает сотрудник. [10]
Использование каждого из спецификаторов доступа к элементам public:, protected: и private: только один раз в определении класса помогает избежать путаницы. [11]
Свойства имеют два спецификатора доступа ( access specifiers), которые используются при чтении и модификации их значений. [12]
![]() |
Вызвавшая ошибку попытка обращения к закрытым элементам класса. [13] |
Использование каждого из спецификаторов доступа к элементам public:, protected: и private: только один раз в определении класса помогает избежать путаницы. [14]
Согласно принципам инкапсуляции, спецификаторы доступа необходимо использовать для предотвращения непосредственного доступа пользователя к переменным-членам внутри класса. [15]