Step 2 (S-10669)

From Stepik Wiki
Jump to: navigation, search

Step on Stepik: https://stepik.org/lesson/553/step/2

Step 2 (S-10669) 1.png

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


Step 2 (S-10669) 2.png

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


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


[00:52 - 01:08] определить функцию скоро с тем же самым именем но работающих типом int эти 2 функции могут существовать параллельно в программе и при вызове функции сквозь по имени будут подбираться не более подходящее функция основываясь на теперь


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


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


[01:43 - 01:58] от целочисленного значение но будем ожидать что нам вернется double то эта информация будет проигнорировано будет вызвана функция сквозь от int а ее возвращаемое значение будет преобразована в тепло


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


[02:15 - 02:31] а в начальное значение будет конвертирована значительному типу int если тип значение которое передано функцию squier не будет соответствовать какому то конкретному типу то есть это будет не double


[02:31 - 02:47] и не int то компилятор в этом случае постарается подобрать наиболее подходящий в данном случае мы вызываем функцию склад от значения 2.71 f значение этого литералы это тепло


[02:47 - 03:05] в данном случае компилятор решить что более правильно конвертировать и флот тепловых точка тип double и поэтому в данном случае будет вызвана функция square a double


[03:05 - 03:09] а я возвращаемое значение будет преобразована в тепло