Объектно-ориентированное программирование



Объектно-ориентированное программирование - стр. 73


Отметим, что в объявлении iarray m(10); также производит вызов конструктора, в котором собственно и выполняются действия по созданию массива.

Есть другая возможность создания объекта с помощью оператора new. Например, в следующем фрагменте программы:

iarray *a;

iarray *b;

int n1=10

int n2=20;

a=new iarray(n1);

b=new iarray(n2);

…………

delete a;

delete b;

, где  динамически создаются два массива a и b, размерностью 10 и 20 соответсвенно.

2.1. Связь класса с внешней средой

 

В ООП широко используются абстрактные типы данных и скрытие информации. Следовательно, проблема взаимодействия классов со средой, в которой они используются, приобретает первостепенное значение.

 Решается эта проблема путем управления доступом к элементам классов с помощью использования в определениях классов ключевых слов private, public и protected.

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

 Описатель public говорит о том, что следующие за ним элементы класса доступны во внешней среде. Обычно public указывается перед методами класса.

Отметим, что элементы класса не могут иметь описателей типа памяти automatic, extern. Они могут иметь дополнительно только описание static. Элемент класса с описателем static будет общим для всех объектов данного класса.

 Помимо public и private в классах можно использовать ключевое слово friend, с помощью которого объявляется “дружественные “ ему функции и целые классы. Если в классе объявлен прототип функции с описателем friend, не принадлежащий ему, то эта функция получает право доступа к внутренним элементам класса, например:

class type{

 private:

 int prm;

public:

 friend void ftype(type x,int y);

void ftype(type x,int y);

{ x.prm=y;}

В данном примере  в “дружественной “ классу  функции ftype осуществляется доступ к внутренней переменной prm объекта x, принадлежащего к классу type.




Содержание  Назад  Вперед