Difference between revisions of "Step 10 (S-11543)"

From Stepik Wiki
Jump to: navigation, search
(Create page for step id=11543)
 
 
Line 1: Line 1:
 
Step on Stepik: https://stepik.org/lesson/564/step/10
 
Step on Stepik: https://stepik.org/lesson/564/step/10
  
<img width="50%" src="https://ucarecdn.com/19afaa8e-145a-486e-93b0-9aef788cebd9/">
+
[[File:Step_10_(S-11543)_1.png|border|800px]]
  
 
[00:00 - 00:15] аналогично шаблона функциям можно определять шаблонным методом давайте посмотрим на следующий пример в данном примере мы дополним шаблоны класс массива при помощи такого шаблонного конструктор
 
[00:00 - 00:15] аналогично шаблона функциям можно определять шаблонным методом давайте посмотрим на следующий пример в данном примере мы дополним шаблоны класс массива при помощи такого шаблонного конструктор
Line 33: Line 33:
  
  
<img width="50%" src="https://ucarecdn.com/e7f8eac9-c2ee-4fe5-9883-42d9fc141445/">
+
[[File:Step_10_(S-11543)_2.png|border|800px]]
  
 
[02:47 - 03:04] позволит сделать например обратно с можно бы после такой конвертации присвоить массиву а массив б и внутри этого оператора предстанем пред обратное преобразование от значения типа double грачевым типа нет
 
[02:47 - 03:04] позволит сделать например обратно с можно бы после такой конвертации присвоить массиву а массив б и внутри этого оператора предстанем пред обратное преобразование от значения типа double грачевым типа нет
  
  
<img width="50%" src="https://ucarecdn.com/d9df3f4f-05bd-4578-b361-1402f32b5331/">
+
[[File:Step_10_(S-11543)_3.png|border|800px]]
  
<img width="50%" src="https://ucarecdn.com/50a0a8cc-2db4-4a31-ae06-e6f529d40a11/">
+
[[File:Step_10_(S-11543)_4.png|border|800px]]
  
 
[03:04 - 03:19] важно отметить что так же как и другие методы класса шаблоны методы можно определять снаружи класс обычно затруднения вызывает когда мы снаружи класса определяем
 
[03:04 - 03:19] важно отметить что так же как и другие методы класса шаблоны методы можно определять снаружи класс обычно затруднения вызывает когда мы снаружи класса определяем
Line 48: Line 48:
  
  
<img width="50%" src="https://ucarecdn.com/38ae3448-9b98-4769-a9ab-14faacbd1ad5/">
+
[[File:Step_10_(S-11543)_5.png|border|800px]]
  
 
[03:34 - 03:53] то оператор присваивания будет шаблоны методом шаблонного класса для того чтобы его определить снаружи казался ему нужно задать 2 шаблонным заголовкам 1 шаблоны заголовок 1 он будет соответствовать шаблонному заголовку снова класса
 
[03:34 - 03:53] то оператор присваивания будет шаблоны методом шаблонного класса для того чтобы его определить снаружи казался ему нужно задать 2 шаблонным заголовкам 1 шаблоны заголовок 1 он будет соответствовать шаблонному заголовку снова класса
  
  
<img width="50%" src="https://ucarecdn.com/de61f366-f88a-4c40-b8c8-4d87e3bc0fd8/">
+
[[File:Step_10_(S-11543)_6.png|border|800px]]
  
<img width="50%" src="https://ucarecdn.com/67d9ea0b-cfc0-4dc4-bdf9-93e7e76de9b2/">
+
[[File:Step_10_(S-11543)_7.png|border|800px]]
  
 
[03:53 - 04:11] соответствует типу из параметров класс эры 2 шаблоны заголовок будет соответствовать шаблону заголовку непосредственно при этом когда мы будем указывать
 
[03:53 - 04:11] соответствует типу из параметров класс эры 2 шаблоны заголовок будет соответствовать шаблону заголовку непосредственно при этом когда мы будем указывать
  
  
<img width="50%" src="https://ucarecdn.com/5b433b55-334d-4844-bdba-d579c1d79a58/">
+
[[File:Step_10_(S-11543)_8.png|border|800px]]
  
 
[04:11 - 04:29] тип до которого мы переопределяем данный метод мы должны будем указывать полное имя типа то есть мы должны будем указывать re с подставленным шаблоны параметром type 10 ты здесь указывается
 
[04:11 - 04:29] тип до которого мы переопределяем данный метод мы должны будем указывать полное имя типа то есть мы должны будем указывать re с подставленным шаблоны параметром type 10 ты здесь указывается
  
  
<img width="50%" src="https://ucarecdn.com/34af1743-4cde-41bb-8878-e07fcc9978d5/">
+
[[File:Step_10_(S-11543)_9.png|border|800px]]
  
<img width="50%" src="https://ucarecdn.com/4499e7d1-7ecf-4dc0-9880-087abb142730/">
+
[[File:Step_10_(S-11543)_10.png|border|800px]]
  
 
[04:29 - 04:44] конкретный тип уже то есть внутри класса мы можем позволить себе указывать просто эры но при реализации мы должны уже указывать полное название типа
 
[04:29 - 04:44] конкретный тип уже то есть внутри класса мы можем позволить себе указывать просто эры но при реализации мы должны уже указывать полное название типа
  
  
<img width="50%" src="https://ucarecdn.com/4dbf602c-f745-481d-b9cf-299185d825c8/">
+
[[File:Step_10_(S-11543)_11.png|border|800px]]
  
 
[[Category:Steps]]
 
[[Category:Steps]]
 
[[Category:Шаблоны функций (L-564)| 10]]
 
[[Category:Шаблоны функций (L-564)| 10]]

Latest revision as of 13:09, 7 August 2017

Step on Stepik: https://stepik.org/lesson/564/step/10

Step 10 (S-11543) 1.png

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


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


[00:32 - 00:50] конструктор по умолчанию конструктор копирования оператор присваивания и деструктор вот это 4 метода который генерирует с компилятором это 4 метода не могут быть шаблонными еще метод который не может быть шаблон это виртуальный метод не может быть шагом


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


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


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


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


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


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


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


Step 10 (S-11543) 2.png

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


Step 10 (S-11543) 3.png

Step 10 (S-11543) 4.png

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


[03:19 - 03:34] шаблонный метод шаблонного класса от в данном случае оператор присваивания шаблон оператор присваивания которой мы здесь объявили можно определить с наружи класса так отношениям класс является шаблоном


Step 10 (S-11543) 5.png

[03:34 - 03:53] то оператор присваивания будет шаблоны методом шаблонного класса для того чтобы его определить снаружи казался ему нужно задать 2 шаблонным заголовкам 1 шаблоны заголовок 1 он будет соответствовать шаблонному заголовку снова класса


Step 10 (S-11543) 6.png

Step 10 (S-11543) 7.png

[03:53 - 04:11] соответствует типу из параметров класс эры 2 шаблоны заголовок будет соответствовать шаблону заголовку непосредственно при этом когда мы будем указывать


Step 10 (S-11543) 8.png

[04:11 - 04:29] тип до которого мы переопределяем данный метод мы должны будем указывать полное имя типа то есть мы должны будем указывать re с подставленным шаблоны параметром type 10 ты здесь указывается


Step 10 (S-11543) 9.png

Step 10 (S-11543) 10.png

[04:29 - 04:44] конкретный тип уже то есть внутри класса мы можем позволить себе указывать просто эры но при реализации мы должны уже указывать полное название типа


Step 10 (S-11543) 11.png