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

3 Вопрос.

Определение объекта. Способы доступа к данным и методам автоматических и динамических объектов.

Объектом или экземпляром класса называют переменную типа класс.

Для определения объекта используется следующая конструкция:

<имя класса><имя объекта>;

Время жизни и видимости объектов зависит от вида и места их определения. Различают глобальные, автоматические и динамические объекты.

1). Глобальные объекты создаются в начале программы и разрушаются при ее завершении.

2). Автоматические объекты создаются при входе в блок и разрушаются при выходе из него.

3). Динамические объекты создаются в динамической памяти в процессе выполнения программы оператором new и разрушаются оператором delete.

Для автоматических объектов доступ данных не из класса осуществляется с помощью конструкции: <имя объекта>.<имя класса>::<имя поля>;

Для обращения к методу не из класса можно использовать конструкцию: <имя объекта>.<обращение к методу>;

Доступ к элементам динамических объектов предусматривает явное использование указателя на объект и операцию косвенного выбора элементов ‘->’.

Для обращения к полям данных динамического объекта из вне следует использовать конструкцию: <указатель на объект>-><имя поля>;

Для обращения к методу динамического объекта следует использовать следующую конструкцию: <указатель на объект класса>-><обращение к методу>;

Замечания:

1). В одном и том же методе мы можем использовать переменные с одним и тем же именем, но принадлежащие разным областям видимости;

2). С++ допускает раздельную компиляцию частей программы: можно определение класса разместить в отдельном файле, а главную функцию в другом файле, но при этом подключить файл с классом.

4 Вопрос.

Определение конструктора. Форматы вызова конструктора.

Конструктор – это метод класса, который автоматически вызывается при объявлении (определении) объекта или при динамическом создании объекта.

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

Определение конструктора внутри класса:<имя класса>(<список формальных параметров>){<операторы>};

Формат вызова конструктора:

<имя класса><имя объекта>(<список параметров>);

Правила при работе с компилятором:

1). Имя конструктора должно совпадать с именем класса;

2). Не определяется тип возвращаемого объекта;

3). Может иметь несколько конструкторов с разными параметрами (перегрузка функций);

4). Параметры могут иметь любой тип кроме этого типа класса;

5). Компилятор создает его автоматически;

6). Конструкторы не наследуются.

5 Вопрос.

Способы инициализации данных объекта с помощью конструктора.

Существует 2 способа:

1). Передача значений параметров в тело конструктора;

2). Перемещение списка инициализаторов данных объектов. Этот список помещается между списком параметров и телом конструктора.

Синтаксис определения конструктора:

<имя класса>(<список параметров>):<список инициализаторов>{<тело конструктора>};

6 Вопрос.

Определение и вызов деструктора.

Деструктор – это метод класса, который используется для разрушения объекта. Он освобождает память, выделенную под объект. Деструктор является антиподом конструктора.

Если в классе не определен деструктор, компилятор создает его по умолчанию.

Формат описания деструктора:

~<имя класса>(){<операторы>};

Правила при работе с деструктором:

1). Имя должно совпадать с именем класса;

2). Не имеет возвращаемого значения;

3). Не имеет параметров;

4). Не может быть перегружен;

5). Вызов деструктора для уничтожения динамического объекта выполняется с помощью оператора delete.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]