Difference between revisions of "Step 3 (S-10031)"

From Stepik Wiki
Jump to: navigation, search
(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
  
<img width="50%" src="https://ucarecdn.com/532cb08d-1b59-4ab7-926c-a810837bb16e/">
+
[[File:Step_3_(S-10031)_1.png|border|800px]]
  
 
[00:00 - 00:16] для того чтобы переопределить поведения объектов при копировании можно переопределить 1 такой метод это конструктор если не определить конструктор копирования то он будет сгенерирован компилятором и компилятор конструкторы просто скопировать значение
 
[00:00 - 00:16] для того чтобы переопределить поведения объектов при копировании можно переопределить 1 такой метод это конструктор если не определить конструктор копирования то он будет сгенерирован компилятором и компилятор конструкторы просто скопировать значение
Line 18: Line 18:
  
  
<img width="50%" src="https://ucarecdn.com/35600baf-65c3-48ae-8c46-8ea480833688/">
+
[[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

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] передача объекта по ссылке мы передавали по значению то при передаче объекта конструктор копирования можно было бы сначала вызвать его конструктор копирования для создания нового орлеана это привело к независимости поэтому конструктор копирования понимает именно ссылку