Step 3 (S-10031)

From Stepik Wiki
Revision as of 12:34, 7 August 2017 by Admin (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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

Step 3 (S-10031) 1.png

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


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


[00:32 - 00:49] вместо того чтобы просто копировать значения полей скопировать только значение а поле data мы заполним указателем на новый массив размер size а дальше в теле конструктора скопируй значение


[00:49 - 01:08] массива а динамический массив который таким образом при копировании объекта нас будет копировать значения и выделяться в массив который скопировать значение


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


Step 3 (S-10031) 2.png

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