Step 4 (S-10030)

From Stepik Wiki
Jump to: navigation, search

Step on Stepik: https://stepik.org/lesson/550/step/4

Step 4 (S-10030) 1.png

[00:00 - 00:17] в тех случаях когда который не происходит уже существующий объект вызывает а другой нет отметок называется оператор присваивания так же как и конструктор копирования оператор присваивания будет сгенерирован компилятором автоматически если вы не пойдете вручную это важно определить оператора присваивания надо


[00:17 - 00:36] определить класса метод с именем оператор и 1 параметром таким же как и его конструкторы копирования то есть это константная ссылка на значение этого типа возвращаемое значение оператора присваивания эта ссылка на текущая


[00:36 - 00:51] значение объекта то есть текущая давайте посмотрим как можно было бы реализовать оператор присваивания для класса целочисленного массива начнем с конца в самом конце нам нужно вернуть ссылку на текущий год до этого


[00:51 - 01:06] используется обращение к указателю this ну вы таким образом получаем ссылку на текущее отвечу оператора присваивания от конструктора копирования в том что при мысли оператор присваивания


[01:06 - 01:23] уже существует объект который вы прислали поэтому перед тем как скопировать данные есть аргументы описание нам нужно сначала удалить все данные которые уже есть объект сначала удаляю


[01:23 - 01:43] динамический массив на который указывает поле после этого мы копируем значение размер массива выделяет много динамический массив соответствующего размера и копируем элементы массивов так


[01:43 - 02:01] для того чтобы наш код работал корректно и в том случае если мы попытаемся присвоить массиву самого сюда нам нужно проверить что аргумент который пришел оператор присваивания это


[02:01 - 02:17] некоторые другой массив потому что в том случае если мы попытаемся присвоить массивы значение самого себя то мы в 1 строчку удалил свой массив чтобы этого не происходило


[02:17 - 02:32] условные выражения которые проверяет они вызвали мой оператор присваивания для самого себя немного странно зачем ты счастлив от присваивания самому себе вряд ли в программе напишете о равно


[02:32 - 02:49] однако это может произойти опосредованно при использовании указателя например присваивается значение на которых обитают показатель значение которых указывает при этом вы можете не знать что это указатель указывает на 1 и тоже