Step 3 (S-11544)

From Stepik Wiki
Revision as of 13:09, 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/566/step/3

Step 3 (S-11544) 1.png

[00:00 - 00:15] аналогичным образом устроено и полная спецификация шаблонных вот давайте разберем это например шаблонов интересует шаблонная функция принимает 2 однотипных аргументы по ссылке и меняет их местами наиболее


[00:15 - 00:32] общая реализация этой функции могут выглядеть так мы сохраняем значения аргумента переменной temp да мы присваиваем левом аргумент значение правого аргумента и после этого аргумента значение лил аргумента сохраненных переменной temp такой подход отлично работает с разными типами


[00:32 - 00:48] он также будет работать с пользователями типа у которых есть конструктор копирования в 1 строке и оператор присвоения который вызывает во 2 и 3 строках однако могут быть польские типа у которых


[00:48 - 01:04] нет оператора присваивания как только перестанет быть запрещены но при этом для такого типа может быть признать процессов и реализовано например как метод слов давайте рассмотрим помню специализацию


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


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


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


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


[02:13 - 02:30] кто этим массивом в таком измененном виде то мы там эти мотивы 300 скопировать скопировано там дважды присвоил что довольно трудоемко знаки хватил тоже можно реализовать на вот может быть проблема что такой


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


[02:50 - 03:08] типам параметры бы не ты а ты например и внутри мы сможем вызвать метод своп разница между специализациями и перегрузкам то гармонично