Step 2 (S-10029)
Step on Stepik: https://stepik.org/lesson/550/step/2
[00:00 - 00:19] мы уже обсудили то как создаются и удаляются теперь давайте поговорим о том как объекта копировать дату рассмотрим следующий пример пусть вас обедом класс сочувственно массива на предприятиях прибыли
[00:19 - 00:38] 1 перемена инициализируется числом 10 до соответствует создания массива размер 10 при этом на строки будь страница 2 1 соответствует 2 совет в поле сайт запишется число 10 которая соответствует размер массива
[00:38 - 00:56] это запишется указатель на некоторых динамический массив размера 10 она не что произойдет с массивом а 2 на стояке вот располагаться 1 год запись на размер
[00:56 - 01:14] массива 20 а 2 год записано указатель на некоторый динамический массив размер 20 теперь когда мы пытаемся создать 3 перемену и проанализировать или не размер а значения массива 1
[01:14 - 01:33] при такой инициализации копирования копирование полей которые соответствуют массиву то есть на стоке вместятся оба мира будет содержать значение которое соответствует размер массива 1 10
[01:33 - 01:49] а 2 будет содержать указатель такой же как ранее писали что у нас будет 2 объекта типа с значит самолета который ссылаются на нем той же нагрузки на ось
[01:49 - 02:06] следующей строчке мы пытаемся присвоить объекту значение объекта при этом произойдет изменение значений которые хранятся в объекте а 2 то есть на месте числа 20
[02:06 - 02:25] будет записано число 10 которая соответствует размер массива 1 вместо указателя на диванчике массив размер 20 да конечно указатель на массив которые соответствуют перемены 1 этом размер 10 этот перечень наций теперь
[02:25 - 02:43] будь указывает что мы получили мы получили что на стыке располагается 3 объекта типа целочисленному которые ссылаются на 1 и тот же день что есть что придает при выходе из функции
[02:43 - 02:59] при выходе из функции подойдет вызов деструкторов соответствующих локальных переменных сначала вызвать деструктор переменной и в деструкторе качественному все придет освобождение понять
[02:59 - 03:15] то есть деструктор а 3 освободить память соответствующую 1 классе то же самое произойдет и деструкторе перемены а 2 попытаемся освободить память но при этом
[03:15 - 03:33] даны уже освобождена инструкторы матрица пресным получится ошибка в не помню пытались дважды сфолить это тоже понять если бы на этом месте наше приложение не упал то после этого вызвался деструктор переменной а 1 и мы снова постараюсь освободить память
[03:33 - 03:49] которую занимал дождемся массив а уже освобождена и снова ошибка он заметил также что кроме ошибки здесь есть еще утечка памяти в тот момент когда мы присвоили переменной а 2
[03:49 - 04:08] значение переменной 1 мы потеряли все ссылки на динамические протоколы 20 вставь мы перечеркнут этот показатель очень от ссылок на этот массив остался висеть павел сегодня вы можете вот