Step 5 (S-11056)

From Stepik Wiki
Jump to: navigation, search

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

Step 5 (S-11056) 1.png

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


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


Step 5 (S-11056) 2.png

Step 5 (S-11056) 3.png

[00:33 - 00:49] при помощи метода нам требуется предмет от 0 аргументов это объясняется тем что у каждого метода есть неявная аргумент который соответствует текущему объекта то есть тому объекту которого данный метод вызывает поэтому для определения ударных


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


[01:08 - 01:26] объекту который бы данный метод можно посмотреть как при помощи метода можно определить бинарный оператор - бинарные операторы - будет соответствовать нет от 1 аргумента


[01:26 - 01:44] и в качестве аргумента левого операнда оператор имеет будет текущее то есть при реализации обращаемся к значениях текущего объекта из него вычитается значение


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


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


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


[02:36 - 02:53] как оператор множить равно от типов вектор можно почти все операторы которые мы описывали снаружи определить внутри ну давайте посмотрим на предыдущие знать


Step 5 (S-11056) 4.png

[02:53 - 03:10] например оператор + можем производить без проблем в качестве метод этот метод 1 от 1 аргумента оператор умножить на число вы точно так же можно определить внутри классненькие проблем нет а вот с оператором


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


[03:25 - 03:44] внутри класса нам потребовался потребовало бы изменения соответствующего типа то есть apple типа double double может является встроенным тик так он еще является не является классом то есть там метод у типа double не определить поэтому такой


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


Step 5 (S-11056) 5.png

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


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


[04:32 - 04:51] оператор квадратные скобки у данного оператора всегда 1 аргумент он не обязательно соответствует целочисленном параметры этот естественно но вы можете продавать хоть свою интерпретацию ночь в данном случае он принимает аргумент


[04:51 - 05:06] целочисленную типа если и равняется 0 то возвращается 1 координаты а если и это не нулевое значение выражается в то какая то реализации которая в некотором смысле соответственно то прощения


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


[05:21 - 05:36] оператор круглые скобки как я говорил в отличие от экватора квадратные скобки оператор круглые скобки может принимать произвольное число аргументов например можно 1 образом перегрузить оператор круглые скобки от


[05:36 - 05:53] 1 аргумента типа double а каким то другим способом перегрузить оператор квадратные круглые скобки от 2 аргументов типа да ну как вот этих и других типов таким образом можно добиться того чтобы объекты


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


[06:10 - 06:25] классы круглые скобки от этого параметра я где то могу вызвать в от 3,5 это синтаксический очень похоже то всегда очень похожи совпадает с вызовом функций