Difference between revisions of "Step 3 (S-10031)"
(Create page for step id=10031) |
|||
Line 1: | Line 1: | ||
Step on Stepik: https://stepik.org/lesson/550/step/3 | Step on Stepik: https://stepik.org/lesson/550/step/3 | ||
− | + | [[File:Step_3_(S-10031)_1.png|border|800px]] | |
[00:00 - 00:16] для того чтобы переопределить поведения объектов при копировании можно переопределить 1 такой метод это конструктор если не определить конструктор копирования то он будет сгенерирован компилятором и компилятор конструкторы просто скопировать значение | [00:00 - 00:16] для того чтобы переопределить поведения объектов при копировании можно переопределить 1 такой метод это конструктор если не определить конструктор копирования то он будет сгенерирован компилятором и компилятор конструкторы просто скопировать значение | ||
Line 18: | Line 18: | ||
− | + | [[File:Step_3_(S-10031)_2.png|border|800px]] | |
[01:23 - 01:42] передача объекта по ссылке мы передавали по значению то при передаче объекта конструктор копирования можно было бы сначала вызвать его конструктор копирования для создания нового орлеана это привело к независимости поэтому конструктор копирования понимает именно ссылку | [01:23 - 01:42] передача объекта по ссылке мы передавали по значению то при передаче объекта конструктор копирования можно было бы сначала вызвать его конструктор копирования для создания нового орлеана это привело к независимости поэтому конструктор копирования понимает именно ссылку |
Latest revision as of 12:34, 7 August 2017
Step on Stepik: https://stepik.org/lesson/550/step/3
[00:00 - 00:16] для того чтобы переопределить поведения объектов при копировании можно переопределить 1 такой метод это конструктор если не определить конструктор копирования то он будет сгенерирован компилятором и компилятор конструкторы просто скопировать значение
[00:16 - 00:32] это приведет к последствиям аналогичны тем которые создают привычный нас то не устраивает поэтому давайте определим конструктор копирования самостоятельно конструктор копирования в принимает 1 аргумент это константная ссылка на объект и того же типа
[00:32 - 00:49] вместо того чтобы просто копировать значения полей скопировать только значение а поле data мы заполним указателем на новый массив размер size а дальше в теле конструктора скопируй значение
[00:49 - 01:08] массива а динамический массив который таким образом при копировании объекта нас будет копировать значения и выделяться в массив который скопировать значение
[01:08 - 01:23] соответствующих элементов массива конструктор копирования вызывается в тех случаях когда в результате копирования создается новый объект например при передаче объекта значит это объясняет сигнатуру конструктор копейкой если бы вместо
[01:23 - 01:42] передача объекта по ссылке мы передавали по значению то при передаче объекта конструктор копирования можно было бы сначала вызвать его конструктор копирования для создания нового орлеана это привело к независимости поэтому конструктор копирования понимает именно ссылку