Step 7 (S-11058)

From Stepik Wiki
Jump to: navigation, search

Step on Stepik: https://stepik.org/lesson/558/step/7

Step 7 (S-11058) 1.png

[00:00 - 00:14] 1 достаточно знаний для того чтобы понять как работает операторы вот когда рассказывал про ввод вывод я говорил что все и вся вот эта некоторой специальной ключевые слова и не объяснял как ты работаешь теперь вы можете


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


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


[00:46 - 01:04] файлами и 70 надо подключить какой то федор который писался определял базовый класс для потоков вот например все да и austria предрекали 70 и в том числе в интересах это получается ходор


[01:04 - 01:21] да все можно при желании подключить именно его и тогда вы избежите подключения определение 70 но в некоторых очень можно обойтись может лежать и остро


Step 7 (S-11058) 2.png

[01:21 - 01:36] внутри его с wd определяются классы экстрим и 100 t острым если допустим это базовый класс для всех потоков вывода ввода


Step 7 (S-11058) 3.png

[01:36 - 01:51] а это для всех потоков как надо перегружать оператор ввода давайте начнем с того оператор который принимает 2 аргумента 1 аргумент это собственно поток ввода


Step 7 (S-11058) 4.png

[01:51 - 02:07] передается по ссылке в качестве 2 аргумента принимается значение того типа который вы хотите считать ну нашем случае вектор всего 2 поля 1 будем считать что


Step 7 (S-11058) 5.png

[02:07 - 02:26] на вот будет по 22 числа которые соответствуют поэтому при реализации данного оператора я из потока воду из считывают сначала 1 потом 2 и важно для того чтобы могли учитывать несколько


Step 7 (S-11058) 6.png

Step 7 (S-11058) 7.png

[02:26 - 02:41] значит не подряд как делать то есть то есть 1 метод вызывается 2 метод для того чтобы это работало надо из оператора буду возвращать ссылку на


Step 7 (S-11058) 8.png

[02:41 - 02:58] поток вот мы здесь зачем в отношении врача по поводу в как и с которым уже что то что то аналогичное делать с потоками вывод в качестве 1 аргумента пример принимается поток вывода


Step 7 (S-11058) 9.png

[02:58 - 03:14] базовый класс если мы определим это будет работать и для себя вот и если известно о встрече авто в качестве 2 аргумента передается значение давайте по которой мы хотим вывести но и тем кто там аналогично


Step 7 (S-11058) 10.png

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


Step 7 (S-11058) 11.png

Step 7 (S-11058) 12.png

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


Step 7 (S-11058) 13.png

Step 7 (S-11058) 14.png

[03:50 - 04:03] внутри соответствующих классов и stream austria а мы не можем их менять они описаны где то внутри стандартный библиотеке ему просто не можем внутренних отчетов


Step 7 (S-11058) 15.png