Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпора 57стр.doc
Скачиваний:
54
Добавлен:
15.06.2014
Размер:
478.21 Кб
Скачать

Вопрос 5. Область действия класса. Управление доступом к членам класса. Отделение интерфейса от реализации.

Одним из основных понятий ООП явл понятие класса.

Осн идея класса как абстрактного типа заключается в разделении интерфейса и реализации. Интерфейс показ, как можно использовать класс. При этом соверш не важно, как соответств ф-ии реализованы внутри класса.

Данные-эл-ты класса (переменные, объявленные в определении клас­са) и ф-ции-эл-ты (ф-ции, объявленные в определении класса) явл-ся областью действия класса. Ф-ции, не являющиеся эл-том класса, явл-ся областью действия файла.

При области действия класса эл-ты класса непосредственно доступны всем ф-циям-эл-там этого класса и на них можно ссылаться просто по имени. Вне области действия класса к элементам класса можно обращаться либо ч/з имя объекта, либо ссылкой на объект, либо с помощью указателя на объект.

Ф-ции-э-ты класса можно перегружать, но только с помощью других ф-ций-эл-тов класса.

Операции, использованные для доступа к элементам класса, аналогичны операциям, используемым для доступа к элементам структуры. Операция выбора элемента точка (.) комбинируется для доступа к элементам объекта с именем объекта или со ссылкой на объект. Операция выбора элемента стрелка (->) комбинируется для доступа к элементам объекта с указателем на объект.

Отделение интерфейса от реализации. Облегчает модификацию программ. Изме­нения в реализации класса не влияют на клиента до тех пор, пока интерфейс класса, изначально предназначенный для клиента, остается неизменным.

Каждое определение класса обычно помещается в заголовочный файл, а определения функций-элементов этого класса поме­щаются в файлы исходных кодов с теми же базовыми именами. Заголовочные файлы включаются (посредством #include) в каждый файл, в к-ом ис­пользуется класс.

Управление доступом к Эл-там Спецификаторы доступа к элементу public (открытая часть класса (интерфейс). В интерфейсе описываются операции, которые класс предоставляет своим клиентам.) и private protected ( защищенные, закрытая часть класса наз-ся реализацией класса. В ней обычно описываются данные класса.)

Закрытые элементы класса могут быть доступны только для ф-ций-эл-тов (и дружественных функций) этого класса. Открытые элементы класса могут быть доступны для любых ф-ций в программе.

Основная задача открытых эл-тов: дать клиентам класса представление о возможностях (услугах), к-ые обеспечивает класс. Этот набор услуг составляет открытый интерфейс класса. Клиентов класса не должно касаться, каким образом класс выполняет их задачи. Клиент класса может быть ф-цией-эл-том другого класса или гло­бальной функцией. Из того, что данные класса закрытые, не следует, что клиенты не могут изменять эти данные. Данные могут быть изменены ф-циями-эл-тами или друзьями этого класса. Эти ф-ции должны быть спроектированы так, чтобы гарантировать целостность данных.

Доступ к закрытым данным класса должен тщательно контролироваться использованием функций-элементов, называемых функциями доступа.

class Time { public:

Time();

void setTime(int,int,int);

void printMilitary();

void printStandart();

private:

int hour; int minute; int second; };