Step 2 (S-11536)

From Stepik Wiki
Revision as of 13:07, 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/563/step/2

Step 2 (S-11536) 1.png

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


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


[00:31 - 00:47] мы определим конструкторов от размера объеме explicit что бы ни был неявных преобразований внутри этого конструктора точнее списке инициализации мы выберем динамический массив мы сохраним размера то массированно нам потребуется определить деструктор


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


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


[01:22 - 01:37] то есть например для хранения массива вещественных значит да мы определим класс который будет очень похож на класс перышкин ну потому что к такой класс будет называться вот и он будет хранить элемента типа флот


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


[01:53 - 02:12] конструктор копирования оператор присваивания между прочим посмотреть на код бухайте классов то можно заметить что код почти совпадают давайте я подчеркнул различие различие кроме имени здесь вот здесь


[02:12 - 02:30] здесь здесь ссылку здесь ссылка на вход есть указательное здесь показательно то есть если мы захотим имея уже класс создать класс р флот нам потребуется буквально


[02:30 - 02:47] скопировать код заменить все упоминания типа флот и таким образом получим код нового класс кажется что это не очень правильно потому что мы фактически дублируем кот более того мы таким образом можем


[02:47 - 03:06] растиражировать некоторые ошибки если у нас в реализации метода метода в класса были какие то ошибки то при копировании эти ошибки скопируется и на рф ну понятно что такая схема она порочна давайте разберемся как можно избежать такого дублирование год