Слайд 2Конструктор
Функция, называемая конструктором (constructor) класса, имеет то же имя, что и класс.
![Конструктор Функция, называемая конструктором (constructor) класса, имеет то же имя, что и](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/993173/slide-1.jpg)
Подобно другим функциям С++, конструктору могут передаваться параметры, используемые для инициализации одного или более данных-полей класса. В классе Rectangle конструктору дается имя Rectangle, и он принимает параметры l и w, используемые для инициализации длины и ширины объекта, соответственно. Заметьте, что эти параметры имеют значения по умолчанию, которые указывают, что используется значение 0, когда параметр 1 или w не передается явно.
Слайд 3Деструктор
Динамическое выделение памяти для объектов какого – либо класса создаёт необходимость в
![Деструктор Динамическое выделение памяти для объектов какого – либо класса создаёт необходимость](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/993173/slide-2.jpg)
освобождении этой памяти при уничтожении объекта. Такую возможность даёт специальный метод класса – деструктор. Так если в конструкторе класса «матрица» выделяется память для 10 целочисленных элементов, то в деструкторе эта память должна освобождаться.
Слайд 4Конструкторы и деструкторы особые члены класса, служащие для инициализации и уничтожения объекта.
![Конструкторы и деструкторы особые члены класса, служащие для инициализации и уничтожения объекта.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/993173/slide-3.jpg)
Особенности:
они не возвращают никакого значения даже void;
не участвуют в механизме наследования;
нельзя получить их адрес;
конструкторы не могут быть виртуальными;
деструктор не имеет аргументов, а значит его нельзя перегружать;
автоматически вызываются при создании и уничтожении объекта.
Слайд 5Конструкторы имеют тоже имя, что и имя класса. Конструктор принимающий ссылку на
![Конструкторы имеют тоже имя, что и имя класса. Конструктор принимающий ссылку на](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/993173/slide-4.jpg)
собственный класс, называется конструктором копирования. Конструктор без аргументов называется пустым конструктором. Если в классе конструкторы явно не определены, то создается пустой конструктор по умолчанию. Также если пустой конструктор определен, то он используется для инициализации объекта по умолчанию.
Деструктор имеет тоже имя, что и имя класса, но перед именем ставится знак ~. При инициализации объекта, вначале инициализируются его родительские объекты в порядке включения.