Rabochy_stol / 4 конструкторы и деструкторы
.docx4/ конструкторы и деструкторы
Конструктором класса наз ф-я член класса, имя которой совпадает с именем этого класса. Вызов конструктора указыва компилятору, что созд нов объект класса. Он может осущ явно и неявно. При определении объкта вызов контейнера происходит неявно. В контейнере можно использовать данные и функции члены класса а также указатель 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;)}