ВУЗ:
Составители:
Рубрика:
6
Доступность компонентов класса
В рассмотренных ранее примерах классов компоненты классов яв-
ляются общедоступными. В любом месте программы, где “видно” опреде-
ление класса, можно получить доступ к компонентам объекта класса. Тем
самым не выполняется основной принцип абстракции данных – инкапсу-
ляция (сокрытие) данных внутри объекта. Для изменения видимости ком-
понент в определении класса можно использовать спецификаторы доступа:
public, private, protected.
Общедоступные (public) компоненты доступны в любой части про-
граммы. Они могут использоваться любой функцией как внутри данного
класса, так и вне его. Доступ извне осуществляется через имя объекта:
имя_объекта.имя_члена_класса
ссылка_на_объект.имя_члена_класса
указатель_на_объект->имя_члена_класса
Собственные (private) компоненты локализованы в классе и не дос-
тупны извне. Они могут использоваться функциями – членами данного
класса и функциями – “друзьями” того класса, в котором они описаны.
Защищенные (protected) компоненты доступны внутри класса и в
производных классах.
Изменить статус доступа к компонентам класса можно и с помощью
использования в определении класса ключевого слова class. В этом случае
все компоненты класса по умолчанию являются собственными.
Пример.
class complex
{
double re, im; // private по умолчанию
public:
double real(){return re;}
double imag(){return im;}
void set(double x,double y){re = x; im = y;}
};
Конструктор.
Недостатком рассмотренных ранее классов является отсутствие ав-
томатической инициализации создаваемых объектов. Для каждого вновь
создаваемого объекта необходимо было вызвать функцию типа set (как для
класса complex) либо явным образом присваивать значения данным объек-
та. Однако для инициализации объектов класса в его определение можно
Страницы
- « первая
- ‹ предыдущая
- …
- 3
- 4
- 5
- 6
- 7
- …
- следующая ›
- последняя »