Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Rabochy_stol / 4 конструкторы и деструкторы

.docx
Скачиваний:
15
Добавлен:
31.05.2015
Размер:
14.13 Кб
Скачать

4/ конструкторы и деструкторы

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

1Не имеющ типа возвращ значения – не должны возвращать значения.

2Конструкторы не м б объявлены с класс идентиф – this, const, volatile

3 Конструкторы не могут быть объявлены класс типа static

4Конструктор не может быть объявлен спецификатором virtual

Из пункта 1 следует что для обработки ошибок в конструкторе должны использоваться исключения. Конструктор по умолчанию наз конструктор, кот можно вызвать без аргументов, го можно определить двумя способами – без параметров и со списком параметров. В котор все параметры имеют значения по умолчанию. Класс может иметь только один конструктор по умолчанию. Если класс не имеет конструкторови не содержит констант , то конструктор по умолчанию генерируется компилятором.

Деструктор – ф-я член класса, имя которого начинается с символа ~ (тильда)Ю, за которым без пробелов след имя класса. Деструктор вызывается неявно при уничтожении объекта и предназначен для освободения ресурсов, захвач во время жизни объекта.

~demo(){delete []p};

Чтобы запретить такое использование конструктора с одним параметром этот конструктор объявляется как явный, при помощи спецификатора eplicut

Struct demo

{int n;

Public: eplicit demo (int_n-0):n(_n){}

Operator+=(const demo&d)(n+=dn;)}