Подготовка к собеседованию на C/C++ Developer
Менторы
Специалисты своей области, которые смогут помочь вам
Middle .Net Developer
Senior Product Manager
Middle Python Developer
Ведущий программист
Backend Software Engineer (PHP)
Senior .NET/C# developer
Middle DevOps Engineer | Tbilisi, Georgia
Middle C# .NET
Senior PHP-разработчик
Middle python developer
Каналы
Полезные Telegram каналы и чаты
Транскрипция видео:
окей привет тогда предлагаю начать собеседование начнем с простеньких задач по си плюс плюс сейчас скида год задачки сейчас секунду у нас есть четыре как бы способа записи указателя до с константности и хотелось бы понять в чем разница то есть есть допустим на 3 4 5 6 строке различные способы как можно написать комната с указателем хорошо значит первом случае мы заключаем менять влево то есть здесь адрес до имеется ввиду но здесь на самом деле будет мы говорим что константный будет объект на которой
00:00:00 - 00:01:26
мы ссылаемся то есть мы сможем адрес поменять мы не сможем окей то есть здесь мы не можем изменить вылью константное на которую мы ссылаемся дальше во втором случае константный у нас будет указатель прокопьевска кто здесь на самом деле тоже будет константной воле то есть как бы это идентичная форма записи 3 способ я вспомнил он состоял в первом случае 2 константный блю во втором случае на контактный констант адрес а четвертом случае что-то есть . кан ставили только и все окей хорошо отлично ну хорошо хорошо так окей как бы ссср и
00:00:49 - 00:02:38
указатели понятно а с умными указатель не все просто есть работал можно сказать какие у нас есть стандартные библиотеки умные указателям такой опускаю в чем проблема в чем проблема основная of the pointer а основная в том что если мы присваиваем указатели мама битва что опек что при удалении он удалит в первый раз на втором меня не совсем в of the pointer там разрушающая копирование то есть просто после копирования копируем объект становится невалидным ну там налом скорее всего будет просто это как бы присвоен указателя дэвид и
00:02:06 - 00:03:34
фриз налом это как бы окей вот окей хорошо так еще какие значки умную казатин но под передачи двух разных указать это что они сюда копирование или что присваивали ну при своей присваивания какой он разрешает прессование какой он разрешает как какое прислоню разрешает uniq поттер то есть через перемещающий конструктор интересы оператор перемещения правильно понимаю да вот и хорошо еще какие со мной указателя еще есть он как раз позволяет нескольким указателем а на основе и на основе чего он это делает
00:03:07 - 00:04:29
то есть так как может примерно ну то есть двух словах рассказать на основе чего он позволяет нескольким как бы до шалит по ориентирам ссылаться на один какой-то указателя внутри он содержит счетчик элементах пока ты счетчик писем не удаляет пока чуть больше нуля как только большие какой элемент осечек счетчик как он где вообще располагается там у каждого объекта он свой счетчик или как-то шарится мишель внутри этого контейнера внутри контейнер но имею ввиду в памяти как он уникальный для каждого объекта
00:04:00 - 00:05:08
ribbon шарится между объектами как он там работает не знаешь сейчас вспомним когда-то пытался сам сделать его окей окей хорошо и еще хотя бы поговорить раза шарит pointer поговорили потока безопасный шалит потери или нет то есть мы можем использовать там в контексте нескольких потоков в этот побег будет потока безопасным aligned ну да не будет у него просто у него на самом деле есть атомарных счетчик ссылок но тем не менее этот объект не является потока безопасным окей хорошо a big power зачем нам нужен не назвали civic
00:04:46 - 00:05:58
питера а если если цикличная зависимость то что будет чтобы но что такое общее циклической зависимости и чем на грозит каждый окей хорошо так ну с умные указателями разобрались давай тогда немного поговорим о контейнерах си плюс плюс вот лист и вектор b на наиболее популярный вопрос мы поговорим в чем разница на листа вектора обычный статический массив статическому себе хорошо но здесь до диска именно векторами отсюда но здесь элементы идут подряд как собственно в статическом россии памяти не уделяется
00:05:43 - 00:07:01
размер задается ли динамический вместе это каждое следующее но лист это двунаправленный список то есть там nxt пресс-форм отъедает 1 окей хорошо но то есть динамический лоцируется у нас как бы массив викторина а допустим если мы допустим сперва проинициализируем вектор до 10 элементами потом вставляем 11 момент что происходит ну не мага времена capacity capacity у нас равен 10 мы вставляем один элемент мы копируем размеров размером 11 разве то есть получается при каждой ставки мы будем мо локацию делать в буфере
00:06:48 - 00:08:19
он но просто локаций skype me виду ну танкистам скорее какой-то коэффициент есть то есть нового cola 2 там или приближена то есть на этом как бы нет implementation дефо нет вот хотелось бы поподробнее услышать момент релокации да вот рассказать как там все работает выделяется памятник ну будет будем говорить что память выделяется x2 ok и выделяется память x2 что дальше который а [музыка] старый буфер старый со старым буфером что происходит указали на него теперь указывает окей хорошо смотри ты сказал что все
00:07:51 - 00:09:12
элементы будут копироваться документы аллокация но а если у нас допустим векторе какой-то вектор у нас избе копчик тогда и мы не хотим делать так что обмен три локации объекты копировались хотим сделать так чтобы они перемещались то есть использовать мук семантику как это можно сделать не знаешь ну давай да ну пару секунд если там 10 секунд из ничего не идет ну то есть да если что-то не знаешь говорить не знаю но здесь на самом деле нужно пометить оператор перемещения и конструктор перемещения как на accept и тогда
00:08:45 - 00:09:51
объекты будут но ваться то есть векторе струга гарантия при релокации строгое гарантия безопасности исключения из-за этого нельзя просто так среди не бывать объект если у него может полететь исключение в конструкторе потому что стоит как бы вектор будет нарушена из-за этого такая вот особенность ok хорошо с этим разобрались давай поговорим про симпатическую сложность работы вставка там поиск не поиск вставка допустим удаление взять обращений по индексу какая сложность этих контейнеров чем разница
00:09:29 - 00:10:27
ну листы вектор листа вектор также вставка вставка куда векторе овен [музыка] ну добавляется куда именно в начало и в конец ну по ним понятно дело что вы нету стандартной библиотеки пусть фронт пусть бег в когда мы в конец вставляем какая на сложность а почему военно просто в конец добавляем элемент но он-то не всегда меняется вот как раз таки эта сложность момент релокации это называется амортизационная сложность константной а сложность плюс амортизационная сложностью на твою маркиза цион она же не всегда у нас
00:10:00 - 00:11:03
происходит она определённо какие-то кейсы окей в листе если выпущен какая сложность отлично удаления допустим векторе в листе допустим по итератор у нас есть какой-то итератор да мы взяли троттер как векторы так и в листе допустим из деток ближе к началу мы удаляем делаем рейс и директор или из места какая сложно будет где в векторе еще раз в листе у нас линейная а н правильно но в листья у нас константное нам просто нужно надо удалить и о векторе не знаю о векторе нет удаление у нас есть какой-то
00:10:56 - 00:12:09
iterator вы получили какой-то iterator мы хотим и удалить рассмотрим самый такой плохой случай когда находится где-то ближе к началу то есть около самого начала ибо в самом начале ну здесь мы взяли интер атор и троттер просто взяли вот но векторе нам нужно будет все элементы сдвигать тогда потому что это последовательные последовательный блок памяти то есть нужно все сдвинуть элементов нужно будет вот такие хорошо ладно давай тогда это остановим давай тогда поговорим теперь о сет против on orders c то чем разница
00:11:58 - 00:13:17
или разницы нет есть окей хорошо когда будем все это когда она долетит использовать ну то есть какой-то кеес прикладной когда если да отлично ok хорошо и давай поговорим про steam . тоже поискпоиск давай поиск поиск допустим поиск с этими норда рецептик все операции принципе блок но только да только вставка edition в новый город цвет тоже имеет амортизационный сложность потому что решаешь вызывается тогда все видно окей хорошо отлично тогда пойдем дальше чаши с чешскими задачку секунду есть вот такая вот вот такой вот код и
00:12:59 - 00:14:34
хочется понять что здесь будет выведена можешь подписать я . поставлю чтобы случайно не запустилась до что будет выведена давай только вот здесь сперва долю вот так [музыка] [музыка] вы из ну ты можешь писать принципе да ты можешь писать и до писать откуда пятку ну и пиши сразу откуда тогда будет выведена вот этот без ну да строчку можно описать line 4 онлайн 4 ну я имею ввиду вот print это понятно именно кто вызывает print кто вызывает print откуда из базовый класс огня именно ну да а кто вызывает вот этот принт кто его вызывает
00:14:08 - 00:15:45
откуда дальше да да а как как начинается конструирование объекта все начинается да но конструктор из вызываются верно вот я хотел именно вот это окей да то есть хотелось бы понять откуда мы сейчас создается объект класса ну вот elite 4 я так понимаю лучше тогда писать тогда вот так bass примером близки tr будет базовый конструктор базовых чтобы до было понятно просто чтобы я понимал откуда это все идет дальше теперь должен прожить еще что записанному 3 производного класса то есть на строчки и действенно созываются
00:15:36 - 00:17:12
функция принц оно вызывается летучий скорее всего это будет функция допиши в общем как думаешь да и откуда а дальше уже там будем смотреть инструктор дальше но здесь да можно не писать понятно чем eprint вызвали ok что или нет я хочу хорошо а что делает оператор делит в данном случае вызовет деструктор базового класса но не вызовет произвольного пососи должен был таков базам classen virtual building мы бы вашего хорошо тогда следующий этап начинается [музыка] функция принц написан пейс и деструктора
00:17:05 - 00:18:53
кислой деструктора [музыка] дальше вызовется деструктор чтобы функция одноклассница из деструктора [музыка] ok проверим тогда чем бритва виде на те и она south его надо подключать общими хочется ну на самом деле короче на самом деле правильно конструирование класс начинается с базового класса а разрешение разрушение идёт в обратном порядке подталкивает . что что нужно поменять тогда если разрешение окей хорошо смотри а если мы вот здесь уберем virtual что будет выведена отлично отлично ok а давай еще если вот здесь напишем снова
00:19:30 - 00:21:23
virtual сейчас все там верну тоже да блин к я тут короче сейчас я напишу вида давай хорошо напиши окей ты пися сырья давай тогда пиши но та только девайс вот здесь сейчас я поменяю девайс и здесь bass bass gt-r ok и если смотри я здесь добавлю слова virtual вот здесь что-нибудь изменится у нас только добавил свой действо да-да талия только vertu добавилось теперь все или еще что-то изменится в общак знаешь какие-нибудь тонкости вызова виртуальной функции из конструкторов и деструкторов что были происходить эти функции
00:21:05 - 00:22:48
виртуальная да а мы ее вы своим из конструктора и деструктора какие-нибудь тонкости знаешь нет [музыка] окей хорошо давай тогда поговорим о как обширную то есть виртуальный что что это это как некое воплощение полиморфизма да вот как работает виртуальности плюс пёс может рассказать но есть таблицы для каждой функции хорошо давай вот у нас есть такой код сколько здесь были таблиц виртуальных функций что там у них будет находиться сможешь примерно рассказать я не знаю как это работает но я думаю 3
00:22:44 - 00:24:00
таблицы каждый а зачем 3 таблицы конструктор разве может быть виртуальным 2 на только 2 будет таблицы то есть таблиц виртуальных функций не создаются деда для каждого класса то есть будет таблица bass будет таблица дира вид а внутри этих таблиц будут соответственно уже не по порядку расположенная виртуальной функции вот окей ладно хорошо окей и давай тогда еще один момент обсудила на этот это пропустим вопрос если мы здесь здесь на самом деле ничего не поменяется то есть нужно относиться к вызову виртуальные
00:23:46 - 00:24:51
функции с конструктор и деструктор как будто бы у нее нет слова virtual все скуд марс пишет своих книгах что не надо вызывать функции виртуальный конструктор и деструктор ok если мы здесь виртала берём что-нибудь изменится почему не изменится да да все верно а убирает знаешь что это туле мы ну да то есть сигнатуры то есть не перегружаем ли мы случайно да окей хорошо и давай тогда еще немного поговорим про исключение затронем их немногие давай вот здесь броши error да и здесь я поймаю 2 пусть такой плохой код но тем не менее
00:24:35 - 00:25:53
это просто как бы у нас для именно анализа и понимания того что будет происходить до кетч давай подумаем что будет выведена чтобы что люди нам производного класса точно будет конструктор базовый класс останется [музыка] следующий [музыка] давай начнем с того чтобы чтоб какие тонкости знают что если у нас летит исключение из конструктора что происходит знаешь какие-нибудь кейсы до [музыка] нет ну окей я подскажу деструктора объекта не будет выслано то есть объект были считаться с констру и нами тогда
00:25:37 - 00:27:07
когда завели завершил свой конструктор ну как бы прерываем выполнение конструкторы соответственно деструктор объекта не будет вызвана а если лети ну просто это пока разговоры так вообще вскользь а если у нас летит исключение деструктора что-нибудь знаешь какие-нибудь кейсы об этом вообще мы сможем допустим бросить исключение из деструктора ей отхватить его вот так же сможем перехватить его как думаешь ну вот здесь допустим когда долить будет происходить у нас полетит исключением сможем его перехватить программы ничего
00:27:28 - 00:28:32
не случится а почем почему нет ну на самом деле у нас есть такое слово как но есть такой стол как но еще и на самом деле компилятор не явно помечать деструкторы как но except знаешь что такое слово но except но это да это я вообще на except допустим в наук септ это нам говорит то что не должно вылететь исключение из этой функции да а что произойдёт если полетит исключение из функций которые помечены как но except термина это называется окей и правда был exception не слышал почему и вообще не стоит использовать
00:28:16 - 00:29:27
бурак бросание исключения с конструк из деструктора ok хорошо ну ладно тогда это становится еще хотел бы просто про исключение поговорить слышал про гарантии безопасности исключений не слышал ok ok хорошо тогда ладно эту задачку ставит предлагаешь потей как у тебя с многопоточности а давай поговорим еще я забыл спросить это как бы наш динамический полиморфизм до слышал когда-нибудь про статические полиморфизма как он реализуется или как вообще это как-то называется идиома все плюс плюс не не про другой немного
00:29:21 - 00:30:37
практики не слышал of her т.п. ну точно темплейт ах не слышал да но окей ладно хорошо я так просто в вопросе так сказать что ты больше деталь не понимал так с маком и точки как окей есть такой код он плохой его написал плохой программист возможно плохой возможно нет наша задача 3 factory ну то есть как бы да нам пришел этот код на review вот в гитхабе в git лобби не столь важно нам пришел этот код на review и нам нужно treeview ведь то есть не пустить как бы проблем чтобы на про ты наш куда-то да какие то проблемы
00:30:09 - 00:31:17
шли нужно три factory этот код убедиться что он против вот-вот можно понять что это хороший почему плохая девки почему походя но то есть new так шарится не будет между потолка макияжа как мы можем это пофиксить [музыка] вот я и хорошо да согласен еще вечно неплохой в этом поле который происходит лучше перевести ну да просто у нас как бы фон салон конкурентен 8 сочи на возможно там просто из разных потоков на запускается и там происходит какой-то длительной обработки и не хотелось бы как бы держать мьютекс подложкой вот такой кейс
00:30:52 - 00:32:18
у нас есть саламе тумане когда я пока что еще сейчас внимательно посмотрим что здесь происходит внутри их дата рейса не может быть между фронтом вызовом и папам то есть мы можем получить элемент верхушку а потом кто-то когда мы разлучились кто-то может снять этот верхний элемент вы получается удалим еще предыдущий а если контейнер пустой нато ну короче очевидный beatrice получается и услышали про лагард допустим la garde какие-нибудь нет все плюс пир стандарта билетики какие есть который есть текущий берегу сильный
00:32:28 - 00:33:58
кто мьютекс или кто нет лагард но здесь какой подойдет как ног обычно это какой я просто да ест да хоть и ну да да окей хорошо окей хорошо да лагард согласен да ну я предлагаю переписать код стал гордон да [музыка] но только мы перед успели объект будет до локтя допустим и у нас локон локон на самом деле нет операции unlock all ok' так нет нет есть другой еще гарт у которого есть но тут как бы тут есть два варианта либо можно переписать этот код чтобы не пришлось использовать unlock и лак подумать как это можно сделать либо
00:33:42 - 00:35:18
использовать тогда другой unic unic unic unic log you не клок а мы можем попробовать может попробуем без анлока написать какие идеи есть как можно написать без ну вернуть лагард и попробовать сперва до до кучи можно чем можно придумать чем можно придумать ну вот если подумать что можно придумать до я только все-таки здесь сейчас допишу стать для пока думаешь гарт guard и здесь и студенты есть где нет чем можно день сделать ну я подскажу можно скопировать месяц скопировать месяц и все вот копирование
00:35:09 - 00:36:49
вот есть какие-то идеи как можно скопировать ну то есть мы можем но мы можем как бы мы можем создать переменную долл очки во время ложки скопировать потом все завершится очередью и потом тип работать с толковый обрабатывать запрос идея примерно такая сможем реализовать ну у нас же все равно наша между работой фронтом и локон о и и папам да у нас как бы чего нас получается у нас может быть дата рейс я имею ввиду допустим ладно сейчас немного подскажу если мы вот здесь делаем область видимости до а
00:36:21 - 00:37:47
здесь у нас будет моя сочетать std string message идея есть как как вот что здесь можно сделать с использованием всего этого вот самое сложное на собеседовании когда у тебя была знаете ты все еще думаешь протон у тебя выжигает следующие хорошо хорошо да подумаешь идея не пришла окей дам еще подсказку теперь что нам остается сделать но тут уже осталось просто 3 factory ткут чтобы он заработал но и проверить и проверит конечно же если сообщение не пустое потому что мы можем просто как бы в на острове не
00:37:39 - 00:38:59
выполнится да да да да да еще что нужно сделать еще а корона сейчас сходила на сейчас какой-то из них ну нам вообще по сути тот же мест очень нужен внутри который у нас же есть но и месяц вот это там же не нужен нож и есть я выше написал ну да да да да да да еще осталось что-то написать чего еще не хватает если очередь пустая будет например можно товара значения но у нас раз хочется наша ветку их не пойдет биотекс он сразу и разлучиться он же но если если не поставим пойдет сюда если нет просто он выйдет вот что
00:39:15 - 00:40:54
еще не хватает если у нас очередь будет пустая ну даже да у нас сейчас секундочку случается с этим да да да проверить надо да почему локальная переменная нет будет ну да то есть но как в конструкторе по молчанию строка про инициализируется пустотой слышала слышал еще про такой термин как с с.а. но просто в контексте с с а либо либо из было смог string оптимизация голова смог буфер оптимизация не слышал про такое окей хорошо ну давай тогда как хотела напишем но у него только метод empty называется
00:41:08 - 00:42:59
ok такой код поток обезопасьте у нас будет или нет так мы здесь и 2 разлучили а затем месячном место зачем подачки мы будем это брать ну ножи нет валков калешин там типа все окном и у нас просто нам нужно синхронизировать только с очередью потому что только до 1 очереди у нас у нас же 1 очередь шарится между потоками поэтому я только нужно синхронизировать да окей хорошо давай тогда еще несколько вопросов вот мы у нас есть lista de beaute wizard как бы стандартно еще знаешь какие-нибудь виды бьют иксов
00:43:07 - 00:44:24
стандартные библиотеки тайме там нет но рекурсивные так сыр курсов мьютекс как раз таки да time taught x8 нет шалит шарит мьютекс не зная шарит там time you tore для чего используется ok хорошо а еще какие-нибудь знаешь примитива синхронизации все + + но касаемо стандартной библиотеки как можно синхронизировать взаимодействие между потоками а спит лаки блоки смажьте нет рассказать про них возникает у нас побьют икса и мы пытаемся то есть мы крис мы получили один получили 2 и потом мы ждем когда первый
00:44:11 - 00:45:53
ну ладно окей хорошо принципе нужно 2 внутри 1 3 1 ну не совсем так очень хорошо давай я еще скинули такой код долго на нем останавливаться не будем посмотрим может сразу увидишь что здесь плохо есть вот такой код окей он или не ok кошельки ok но вот здесь как раз таки может быть белок не знаешь как его можно предотвратить или ну да ладно окей если нет понимания тогда не будем здесь долго становится просто такой вопрос смотри а ты сказал что нужно как минимум 2 мбит xado для дока на одном jx и мы смотрим сможем
00:45:25 - 00:46:45
попасть за долг ну можно рекурсивно но и как бы это не до долг это антифа нет by heather но тем не менее как бы defend серию все равно ладно хорошо у нас принципе давай сейчас пилотки обсудим защищены что такое спинки нет ну то есть написать бы не смог бы до spylog окей хорошо тогда у нас еще осталось немного времени предлагаю нам по программировать программировать и продолжаю пописать вот такой код да давай пока ограничимся первым вторым пунктом если время останется то сделаем 3 а если ещё время останется то еще
00:46:22 - 00:47:32
оператор копирование реализуем мы будем как бы исходить пишем примитивно не нужно атомарный счетчик ссылок делать пишем примитивный shared поттер как ты сказал но template in the blade там как бы самая примитивная версию просто мне хочется понять как человек программирует и как вообще понимать как там устроена нет а кстати есть слать разница между классом темп ними в template ах ну да нет разницы ok но при в принципе можешь ты как бы идей свои озвучивать да чтоб я понимал куда ход мыслей идет делаем
00:47:19 - 00:48:28
[смех] значит у нас это два конструктора дев должно быть два конструктора дефолтное конструктор копирования и она еще и конструктор конечно который прибудет принимать указатель да то есть три конструктора забыл здесь написать дефолтный конструктор конструктор с указателем сейчас допишу но пока пиши до конструктора можно будет с указателем сейчас секунду да вот так мы начнем стишок так надо же какой то внутренний для начала нужно герой который будет содержать так нужно будет ему здесь как-то и цели
00:48:08 - 00:49:47
зерыч так мы и шли наш десантный инструктор разве нужно в дефолтном конструкторе память уделять ну то есть когда мы не смотри когда мы пишем как бы код с т.д. сейчас покажу допустим когда пишем оттуда шарик бтр на инт и грубо говоря да и когда создаем поттер у нас было лоцируется память для этого или нет то есть просто тут как бы задать и знаешь и реализовать аналог именно по схожего функционал то есть с 1 смотреть насколько это хорошо значит потерли смотрю как ты программируешь у нас выделяется здесь память когда мы просто
00:49:45 - 00:51:00
создаем поттер [музыка] там видимо видимо в 20 строчка чего-то не хватает вот этот низ компилируется 20 строке но оператором мой оператор тоже звездочку с ним и не реализовывали то есть мы не перегружали оператор звездочку шарик поттера [музыка] так вот должен тоже не скопируется но но вода как раз таки как раз таки именно это и смотр а тут как бы да это все смотрится но слева у нас какой тип слева у нас сейчас т раз мы раза миновали да был у нас вот так был у нас указатель на t равен con шарит поттер
00:50:35 - 00:51:57
такой же низ компилируется надо пофиксить но у нас здесь нужно сделать карт конта и нет а зачем ноги ладно продавца так дописать в хорошо вернемся позже продолжает это писать что хотел реализовать на кипр и пропустим тогда окей хорошо здесь на самом деле но просто нужно обратиться компьютеру mp3 ну и осечек у нас будет ссориться между объектами или нет хорошо да как мы можем это расшарить данном случае просто я смотрю что не будет ссориться между объектами он у каждого будет свой так мы когда мы когда такой создаем на же
00:52:07 - 00:53:33
ничем не выделяется создан но то есть мы опять возвращаемся к этом получается когда мы пишем такой код у нас ассоциируется счетчик ссылок здесь в чем проблем но лишняя локациях ну то есть шарик потери там нет четкого счетчика сын ссылок там есть control блок управляющий блок который внутри содержит директор счетчик слабых сильных ссылок вот ну а какой нам смысл просто когда мы создаем пустой указатель то есть по сути он будет равен его поттера да зачем нам аллоцировать там счетчик ссылок на контроль док хорошо это чтобы поэтому
00:53:58 - 00:55:20
как заказать do you do do do остаётся вопрос слышала про ключевое слово default с 11 + + ну то есть мы как бы можем написать вот так равен дефолт сказать что он будет генерировать компилятор ну и здесь я бы указатель это бы приравнял канал поттера ну да ну и раз мы говорим о си плюс плюс 11 вот сюда вот давай да у нас еще немного времени осталось как раз таки конструктор копирования и конструкций указать на попробуй нарисовать будет равняться вот так вот то что было до вот здесь под низ компилируется
00:54:55 - 00:56:20
нужно будет еще прибавить единицу будешь нарушающих . как-то так скобочка не нужны или нужны я скажу честно я сам толком не помню приоритеты , вот я не скажет лажа руку носятся я просто пишу лично скобочки на тут если мне четко нужно то я как бы лезу смотрю приоритета так я чаще всего пишу скобочки оки и давай еще осталось время сделаем конструктор с указателем ну это я просто но получается чем мы когда создаем умный указатель mucho пишем вот так получается new new шарит поттеру так что ли пишем
00:56:13 - 00:57:37
просто этот код похож на вот так будет выглядеть мы запишем не new шаре поттер и мы запишем вот так чаще всего ну либо если мы не используем их series вы же так делаем либо с кидаем указатель то есть указатель на объект они указатель наша этот вот да да давай еще пара минут осталось давай попробуем все-таки дописать конструкции с указателем как и хотелось [музыка] мы разве мы можем но нал разыменовать египет 0 ну точнее 0 присвоить навык giving да можно даже так хорошо при такой процент случае если
00:57:32 - 00:58:50
у меня есть int и до премьеры dio int и я передаю его std царит бтр int бтр и я могу все так сделать утечка будет но не утечка точнее вы просто как бы мы будем не обращаться потом не с тем ресурсом когда мы придем просто создадим новый т.п. мы не используем то есть [музыка] все ли еще что надо сделать что не так как у нас уже данному можно вот здесь же написать единичку или просто да ладно давай быстренько что деструктор сможем написать по бы стримах так деструктивно у нас значит он не произвести проверку
00:58:38 - 01:00:25
если так то тогда утилит так и вот здесь вот мы потом сделать балку и либо хит лета не перестанешь указывать на qt чипа памяти прости мою освободит вам нужно сделать здесь он там нет а если нет то мы просто умеешь 1 х к утру тоже здесь вы гуляли по ли я тоже нужно освободить тогда окей но если вот этот код мы так запустим с вот таким вот то здесь будет утечка деструкторы всегда что-то неправильно написано то есть вот такой код который я вот выше написал я выделил если мы его запустим в данная реализация будет утечка
01:00:26 - 01:02:04
давай минутка успеешь пропускаешь пофиксите станет то я тогда напишу и будем заканчивать нужно переставить ну на самом деле смотри на самом деле все просто минус минус да как ты написал сюда окей хорошо ладно это как бы примитивная этот реализация вот некоторые еще пограничные случаи не рассмотрены до что потом при копировании у нас может нам прийти грубо говоря на то есть дефолтным конструктором ну то есть как бы мы не рассматриваем что здесь нам будет мы как быть писали примитивной версии мало
01:02:00 - 01:03:06
времени нас оставалось но тем ни менее да что-то написали ok принципе на этом предлагаю тогда закончи спасибо за собеседование
01:02:46 - 01:03:01