Step 9 (S-11061)
Step on Stepik: https://stepik.org/lesson/558/step/9
<img width="50%" src="https://ucarecdn.com/cfaf6067-3808-4c22-af56-d892f174ca4c/">
[00:00 - 00:17] для определения оператор приведения к типу тоже используется специальный синтаксис напомним что данный оператор используется в тех случаях когда мы хотим задать привидение от типа а б и применять его стоит в тех случаях когда на этот тебя мы не можем не копать
<img width="50%" src="https://ucarecdn.com/f0d71748-ccf1-46d5-9c8d-7e8fe6bc9db0/">
[00:17 - 00:36] если бы мы могли повлиять на тебя то внутри тип б можно было бы определить конструктор от значения типа а если же этот тип б библиотечным например или некоторых встроенным чипом то тогда для приведения к этому типу можно определить оператора прилетели
<img width="50%" src="https://ucarecdn.com/ff0b258e-3d32-4cbe-83f6-ef2c3225a7d5/">
[00:36 - 00:54] синтаксис оператора + не отличается от всех оставшихся операторов тем что в его сигнатуре не указывать возвращаемое значение так это делается для обычных методов да напомнить что оператор приведения это 1 из тех операторов которые должен
[00:54 - 01:09] перегружаться именно как метод давайте посмотрим например пусть есть класс стринг и мы хотим научиться переводить объекты типа стренг к значением типа тогда мы определим
[01:09 - 01:25] оператор будет называться оператор буд то есть вот возвращаемое значение тот тип котором привыкнуть он уже есть в названии метода этому его не нужно указывать как формально возвращаемое значение соответствующими но и
[01:25 - 01:40] при реализации данных это был просто проверять что строка не просто так они просто не равен 0 то значит вернем true если строка пуста было 30 фолс как можно такой метод используют давайте
<img width="50%" src="https://ucarecdn.com/d0e05cfd-d854-4921-98bf-4e02dc956fa6/">
<img width="50%" src="https://ucarecdn.com/88c29b48-ce5c-472f-bc7d-8367236accfb/">
[01:40 - 01:57] определим оператор приведения от класса строки к строке 4 c то есть к чиркунов сверточки таком случае нам потребуется написать оператор жарком звездочка это будет проведения
<img width="50%" src="https://ucarecdn.com/f0166dcd-38e6-46a3-b751-264f805aa802/">
[01:57 - 02:12] строки и внутри реализации данного метода можно воспользоваться оператором при любом то есть данном случае мы проверим что строка не пуста если не пуста тогда мы вернем тот указатель который здесь хранятся
<img width="50%" src="https://ucarecdn.com/877b08c9-f4f4-4702-9a57-ff39f87049c3/">
<img width="50%" src="https://ucarecdn.com/6b96c91a-3ab1-4949-98df-fccf376cd6d8/">
[02:12 - 02:31] а если строка пуста мы вернем ветеран соответствующий пустой строки ну потому что в противном случае мы бы вернули нулевой указатель и дальше кто то снаружи ему будет поэтому другом указатель обратиться это привело бы к плачевным последствиям
<img width="50%" src="https://ucarecdn.com/5a59f5ac-c3f6-420f-b64f-07c2588796c0/">
<img width="50%" src="https://ucarecdn.com/07977c2c-410f-4acf-90f4-876c14e852f2/">
[02:31 - 02:50] замечу что в стандарте 2003 года для оператора привидениях типа нельзя указать ключевое слово explicit как это можно сделать при описании
<img width="50%" src="https://ucarecdn.com/b61dcf91-fe75-425a-9de7-7cd16eb3b30c/">
[02:50 - 03:08] конструктор от 1 аргумент соответственно все преобразования которые создаются при помощи оператор приведения к типу они работы в том числе и неявно это было исправлено в стандарте 11 года но вот значит есть друг
<img width="50%" src="https://ucarecdn.com/d9d91d7d-a448-4528-97f1-7fa3bfc2b91b/">
[03:08 - 03:23] скачать программу для старого стандарта помнить о том что описание конструктор в напарники предпочтительно в том числе и потому что в данных дано конструктор можно указать слово explicit
<img width="50%" src="https://ucarecdn.com/2bb13ddb-4903-4737-9c6f-07de47434cc6/">
[03:23 - 03:36] и таким образом избежать неявных преобразований с оператор приведения типа такого то там starting пройдет 1 можно указать слово список и все будет хорошо
<img width="50%" src="https://ucarecdn.com/3d764348-f041-446c-87fa-b71e1cf0e12b/">