ВУЗ:
Составители:
Рубрика:
7
ление класса, можно получить доступ к компонентам объекта класса. Тем
самым не выполняется основной принцип абстракции данных – инкапсу-
ляция (сокрытие) данных внутри объекта. Для изменения видимости ком-
понент в определении класса можно использовать спецификаторы доступа:
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) либо явным образом присваивать значения данным объек-
та. Однако для инициализации объектов класса в его определение можно
явно включить специальную
компонентную функцию, называемую конст-
руктором. Формат определения конструктора следующий:
имя_класса(список_форм_параметров){операторы_тела_конструктора}
7 ление класса, можно получить доступ к компонентам объекта класса. Тем самым не выполняется основной принцип абстракции данных – инкапсу- ляция (сокрытие) данных внутри объекта. Для изменения видимости ком- понент в определении класса можно использовать спецификаторы доступа: 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) либо явным образом присваивать значения данным объек- та. Однако для инициализации объектов класса в его определение можно явно включить специальную компонентную функцию, называемую конст- руктором. Формат определения конструктора следующий: имя_класса(список_форм_параметров){операторы_тела_конструктора}
Страницы
- « первая
- ‹ предыдущая
- …
- 4
- 5
- 6
- 7
- 8
- …
- следующая ›
- последняя »