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

3 Реализация механизма сокрытия информации.

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

в С++ обеспечивается механизмом, позво­ляющим содержать

-публичные (public),

-частные (private) и

-защищенные (protected) части.

Смысл атрибутов доступа таков:

public - член класса может использоваться любой функцией;

private - член класса может использоваться только функциями-членами и функциями-"друзьями" того класса, где он описан; по умолчанию все члены класса имеют атрибут private;

protected - то же, что и private, но дополнительно член может использоваться функциями-членами и функциями-"друзьями" класса, для которого данный класс является базовым.

В C++ элементы структуры или объединения по умолчанию при­нимаются как public; для ключевого слова struct атрибут public может явно переопределяться на private или protected; для ключевого слова union явное переопределение атрибута доступа невозможно;

4 Основные свойства и правила использования конструкторов.

Конструктор представляет собой обычную функцию, имя которой совпадает с именем класса, в котором он объявлен и используется.

Конструктор с параметрами.

- конструктор предназначен для создания объекта (массива объектов) и инициализации его компонент-данных;

-     конструктор вызывается, если в описании используется связанный с ним тип

-     конструктор не должен возвращать никаких значений.

-     в программе может быть несколько конструкторов. (конструкторы с перекрытием, работает механизм перегрузки функций.)

Конструктор, либо не имеющий параметров, либо все аргументы которого заданы по умолчанию – конструктор по умолчанию:

-     каждый класс может только один конструктор по умолчанию.

-     конструктор по умолчанию используется при создании объекта без инициализации его.

-     Конструктор по умолчанию незаменим при создании массива объектов. Если при этом конструкторы с параметрами в классе есть, а конструктора по умолчанию нет, то компилятор зафиксирует синтаксическую ошибку.

-     конструктор копий вызывается только для инициализации. (Когда один объект используется для инициализации другого. )

-     конструктор вызывается, когда объект создается.

- если конструктор в private-секции, то он не может быть явно вызван (из main функции) для создания объекта класса.

5 Правила использования деструкторов.

Деструктор –функция, приводящая к разрушению объекта соответствующего класса и возвращающая системе область памяти, выделенную компилятором.

-     имя деструктора совпадает с именем класса, перед которым ставится символ «тильда»

-     деструктор не возвращает значения (даже типа void);

-     деструктор не наследуется в производных классах;

-     деструктор не имеет параметров (аргументов);

-     в классе может быть только один деструктор;

-     деструктор может быть виртуальным (виртуальной функцией);

-     невозможно получить указатель на деструктор (его адрес);

-     если деструктор отсутствует в описании класса, то он автоматически генерируется компилятором (с атрибутом public);

-     если элементы-данные класса имеют известный размер в байтах, например: int (2 байта), double (4 байта), компилятор при создании объектов выделит соответствующие участки памяти, и в этом случае деструктор не нужен, т.к. он будет иметь пустое определение.

-     если объект создается в динамической области памяти, например, с по­мощью операции захвата памяти new, то деструктор необходимо задавать явно, т.к. он должен уничтожить объект после его использования с помощью операции delete.