Step 5 (S-10692)

From Stepik Wiki
Jump to: navigation, search

Step on Stepik: https://stepik.org/lesson/557/step/5

Step 5 (S-10692) 1.png

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


[00:16 - 00:34] и все это не касается деструкторов destructor хоть может быть чистым виртуальным но у него обязана быть реализации дело в том что деструктор производного класса всегда в конце вызывать деструктор базового класса этого этого базовым классом не определим какой то реализации деструктор то у нас произойдет ошибка компиляции


[00:34 - 00:50] на данном слайде я привел 2 примера interface интерфейс i конвертик букву названия значит это интерфейс это просто некоторые соглашение об именовании такой то не смогли поддержать


[00:50 - 01:07] все классы объекты которых можно преобразовать строчки то есть они могли бы определить у себя нет то стринг которое дорожает строковое представление объект так как в данном интерфейсе есть виртуально методы то я определяю деструктор виртуальным


Step 5 (S-10692) 2.png

Step 5 (S-10692) 3.png

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


Step 5 (S-10692) 4.png

Step 5 (S-10692) 5.png

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


Step 5 (S-10692) 6.png

[01:40 - 01:55] интерфейса иконок то есть мы не знаем какой конкретный тип то поэтому указатель лежит но мы можем внутри реализации этого метода создать копию объекта и вернуть его показательно например такой


Step 5 (S-10692) 7.png

Step 5 (S-10692) 8.png

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


Step 5 (S-10692) 9.png

[02:11 - 02:26] при помощи оператора new динамической памяти и скопировать и помощью конструктора в конструктор копирования мы передадим ссылку на текущий момент не вернешь


Step 5 (S-10692) 10.png

[02:26 - 02:42] заметим что + тут позволяет в качестве указателя при реализации таких методов в пригодны классов указывать указатель на производные типа то есть то что здесь в сигнатуре мы ожидаем


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


Step 5 (S-10692) 11.png

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


Step 5 (S-10692) 12.png