Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ООП.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
225.79 Кб
Скачать

8. Определение объектов при помощи классов.

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

9. Конструкторы и деструкторы классов.

Объекты могут создаваться несколькими способами. Некоторые объекты являются локальными переменными, другие – глобальными, третьи – членами классов. Конструкторы инициализируют объект, другими словами они создают среду, в которой работают функции-члены. Иногда создание такой среды подразумевает захват каких-то ресурсов, таких как файл, блокировка или память, которые должны быть освобождены после их использования. Конструктор локальной переменной вызывается каждый раз, когда управление передается инструкции, содержащей объявление этой локальной переменной. Для объекта создаваемого в свободной памяти, вызывается конструктор класса, указанного в операторе new. Деструкторы используются для уничтожения объектов . Они очищают память и освобождают ресурсы. Деструкторы вызываются неявно, когда автоматическая переменная выходит из области видимости, удаляется объект, хранящийся в свободной памяти.

10. Атрибуты доступа к компонентам классов.

Управление доступом. Метка public разделяет тело класса на две части. Имена в первой (private) части могут использоваться только функциями-членами. Вторая часть образует открытый интерфейс объектов класса. Структура, на самом деле, является классом, члены которого открыты по умолчанию. Ограничение доступа к структуре данных явно объявленных списком функций имеет несколько преимуществ. В частности, если мы изменим представление класса, нам потребуется только изменить функции-члены , чтобы воспользоваться новым представлением. Код пользователя непосредственно зависит только от открытого интерфейса, и код не потребуется переписывать. Защита закрытых данных базируется на ограничении использования имен членов класса. Эту защиту можно обойти манипулированием с адресами и путем явного преобразования типа.