Собеседование | Junior C++

Подготовка к собеседованию на C/C++ Developer

Транскрипция видео:

  • так мы давайте также разогрева назовите отличия ссылки указателя первая ссылка изменяться не может оказать и может по-другому мы передаем посылки если мы передаем ссылки это возникает проблема что мы использовать а в самом начале tasty следует подумать как бы чем отличается когда мы только создаем указатели ссылку несколько это отличие не обязательно просто можно создать выделение до момента получает третье отличие ну и там сняли он должен что указателю можно присвоить нулевое значение то чтобы

    00:00:00 - 00:04:32

  • никуда не указана так размышлять заговорили вот и вопрос что будет выведена сейчас находится и получается и и кременная а получит новое значение равное 4 граница области видимости перемен функции поэтому просто вернется значение 44 записывает значение . этот момент что у нас произойдет что президент а когда мы взываем она же происходит изменение а то есть у нас она была 12 до но после того как мы вызвали f от 2 вот у нас получилось что 12 плюс 2 и у нас получается и т равна 14 и в это же время а у нас стало что здесь будет

    00:03:34 - 00:08:09

  • 2814 а вот вот это интересный вопрос он кстати прямо вот чисто из практики а я сейчас объясню здесь все довольно просто прямо то я кусочек взяла и свои программы там была такая сетка у нас там x от 0 до 20 и мы делим на 100 вот это 20 идем по шагам то есть шаг у нас получается 20 кредит на 100 0,2 вот и мне нужно было найти в определенном месте поставить какие-то ещё дополнительные условия и вот я иду по циклу начиная от 20 этом не доходя до нуля и вычитают это дельта x у нас будет 20 минус 0,2

    00:06:30 - 00:08:02

  • еще минус 0,2 ну и так далее вот вот здесь вот можно увидеть как нам быть распечатываться я поставил такой вот условии x равно равно двум потому что она точно будет когда-то равно 2 так как у нас идет по всем телом проходимся у нас будет 20 у нас будет 19 18 так далее вот и как был в чем проблемы напишите вот здесь вот смотрите от 10 как нужно было правильно писать нужно примерно попасть 2 но она проходит 28 может оказаться такими числами сравнивать перемен точно ну так и есть но там есть некоторые разные служащие но

    00:07:16 - 00:10:41

  • в основном если именно вот в этом примере это не сработает как надо ну так давно будет выполняться много раз пока мне и закончим из цикла а ну тут нужно чтобы именно в этой сетке именно как бы на этом мире дяди я не знаю вот она именно та та выполнился на всех остальных условиях у нас по-другому должны работать нет ну мы же идем по шагам да то есть как бы и как раз этот шажочек взять но я бы кое-что добавила то есть не просто неправильно dx только как когда икс плюс икс это как бы левой стороны и правая а

    00:09:34 - 00:13:23

  • нам нужно что-то поменьше ну можно просто хорошо использует x потому что у нас уже есть как шаг на пополам большой 02 мы уже не слышно спокойно не брать никакие плана взять половину шага он точно за него никуда не выскочит меньше обычно обычно берут моды до минус x а то как бы то как мы идем да и разница между тем что мы идем она как бы должно быть меньше либо равно но можно меньше поставить вот вот тогда мы точно попадем потому что то что вы написали это все тоже самое это раскрытие модули до библиотеки кстати обычно так и пишет но

    00:11:25 - 00:13:29

  • здесь правда какая им тип чего он идет но у нас так как эпсилон не обязательно у тебя стукну но здорово конечно так для того чтобы разгрузится давайте на 3 крутых краеугольных камня хоуп и что-нибудь он имеет оператора следования важный момент последовал его персонаж соответственно от него убежать и реализации и получается рассказали о динамическом на полиморфизм а есть еще эстетически вы знаете что такое статический полиморфизм но смотрите если динамически это значит что во время выполнения программы

    00:13:25 - 00:19:29

  • определяется какая функция будет вызвана для того или иного класс правильно а статический полиморфизм это когда у нас на этапе компиляции как-то там происходит на всем хороша отлично давайте вот сюда посмотрим раз мы поговорили про конструкторы и деструкторы вот смотрите у нас здесь вот у нас такой маленький main вот и нужно понять что у нас выведите на экран тогда мы создадим объект я выкручусь . процес я немножко первую тут немножечко повыше есть еще есть реки а его брат ну да и то есть если они создаются в

    00:18:59 - 00:24:32

  • каком-то порядке определенном важность как бы наша задача понять этот порядок потому что уничтожаться не вот в обратно но смысл тут именно понятия в каком порядке они будут созданы осмотрите а вы знаете что вот это например такую допустим на каким-то интонации визируется неважно что мне тогда просто имеют а чтобы вот так какой цвет называется просто если да если этого не будет но смотритесь и допустим вот так у нас я сделала списка инициализации то что у нас произойдет у нас чтобы сначала конструкторы или

    00:24:33 - 00:26:29

  • конструктор c нечего делать списка интеле зации если его не сделать то а компилятор сам проинициализировать эту переменную он поставит не 12а вызовет конструктор по умолчанию и получается у нас всегда все переменные до конструктора потому что к моменту когда у нас на печатается c нас уже должно быть все готово поэтому и делает не внутри конструктора а вот здесь вот потому что здесь два раза будет не реализации здесь допустимы здесь ну и соответственно называться не будут в обратном порядке ну вот меня тоже time

    00:25:39 - 00:27:39

  • ну это правда было давно на это как бы та часть которая один раз только узнаешь и уже как бы навсегда останется при вас главное что мы его не нашли мы его закрыли вот про виртуальные функции давайте когда посмотрим что здесь у нас и что у нас на печатается здесь мы будем править над ним сначала интересно что вызовется потом уже происходит усечение классов чтобы вызывалась как мы хотели называлось бы c тогда вопрос а зачем нужен виртуальный деструктор о класс да на вопрос а вы иерархии классов в каждом классе пишите про

    00:26:49 - 00:31:48

  • виртуальный деструктор то есть у вас он будет в классе относиться нет это я все к там играла что вы здесь от virtual не надо то есть она создается если в базовом классе один раз есть слово то везде как бы она уже будет виртуальной она излишнее и тут еще не хватает двух слов которые из нового стандарта для того чтобы быть спокойным что вызовется именно то функция я кстати на это напоролась и долго скала ошибку себя но это слово потому что если здесь и допустим указать вот просто и от то у нас это уже не будет вызываться функций

    00:30:33 - 00:32:50

  • она не будет соответствовать по параметрам да а если вы здесь напишите вот так-то у вас программ не откомпилировать скажет тоже хотела сделать виртуальный ситуацию на буду умереть за работой так понимаю графа любите мной такая простая задачка может быть как бы на теорию графов но можно и в голове вообще решить шахматном турнире участвовало 7 человек каждый участник сыграл с каждым по одной партии спрашивайте сколько партии было сыграно в этом шахматном турнире ну близко если мы с вами сыграем в партию

    00:31:42 - 00:34:24

  • шахмат насколько партии был сыгран и так и был такой еще вопрос интересный компилятор в каждом классе может может не обязательно что это делает но может генерить самым какие-то функции что это за функция по умолчанию хорошо конструктор и деструктор по умолчанию а что еще а если нас объекты друг друга приравнивается а у нас нет ничего такого мы не определили что придет а точнее он может создавать если вы не определили копирующий конструктор если вы определили копирующий конструктор он уверен что как-то хитро

    00:32:59 - 00:36:36

  • определяется он его не прошла наша всего сколько этих функций опрос подскажи к 6 и еще две осталось еще два оператора который держит ни пера копирующие призвание присваивание и оператор перемещения помните те же самые равно тыс и не действует просто когда вы перемещающие преславе ник и нужно понять что выведет в консоль объект здесь нет деструкторы нет печать деструктор одессе важны именно тогда что вызывается то есть у нас получается конструкторы вызовется всего два раза крайне да ну поскольку наш объект

    00:34:56 - 00:38:41

  • даня в основном там подсказывается что вот здесь вот вместо двойки говорят что это оператор копирую но еще как бы фишка такая смысл в том что если у вас объект только создается мне очень нет никакого внутреннего состояния вот та вот эта запись это означает вызов в копирующий конструктор у нас любом случае оператор равно нельзя вызвать от объекта которые еще не создан так что да что это такое как это вообще называется вот эту штуку все так и что такое m1 но на самом деле это тип волос тебя так указатель да не

    00:38:32 - 00:41:18

  • должны пугать они что-то означают знаете подумаем их уберём что вот такой вот вот это вот все вот это все правильно а для чего тогда нужными скобочки значит нужно отделить как бы вот этот функцию до объявление функции от чего-то еще меня это указатель просто надо понять на что это указатель есть такой знаете правила вот так вот по кругу когда идешь меня телеграме в самом начале его кладу такие гифки с этим голову видел там в том смотрите что вы от названия идете сначала вправо если вы уперлись скобочку то можно нужно

    00:40:09 - 00:43:07

  • идти влево и когда вот мы уперлись идем наш дом 1 это тут ничего нет это указатель указатель потом идем опять про выведем скобочки на функцию которая не берет никаких параметров а потом опять идем влево и что она делает она возвращает пин то есть это указатель на функцию который возвращает int да то есть вы можете создать многом функцию много функций и менять их присваивая этому указатели вызываете их через этот указатель это иногда бывает очень удобно так ну и тогда с этим тут это указатель на функцию который прямая

    00:41:47 - 00:43:09

  • киньте флот здесь закончили идем туда и возвращает еще такие заморочки муку но такие фишки бывают например вот здесь вот три да и что это уже становится мы идем как обычно вправо идем в правый горе махаем один это массив из 3 а чего есть 3 уперлись скобочку идем обратно массив из трех указателей на функции который вращает young ну на это не смотрите это как бы просто вот у нас есть массив размер чтобы распечатать нас размер чё там скобочках написан раз вместе вместе пишется без поддержки матрицы а если размер int у

    00:42:47 - 00:46:56

  • нас здесь 4 то сколько будет этот созыв от n 40 ну можно так далее ну что там а есть еще вот так сейчас появилась мой вот такая функция в стандартные библиотеки она делает то же самое вот и мне тогда вы просто нового стандарта там есть такая возможность например я не хочу чтобы у меня вызывалась функцию от меня есть функция которая берет параметры и ночную но я не хочу чтобы вот эта работа они не хочу чтобы она чар брала как мне можно сделать чтобы ачара но не работала там есть такое знаете на новшества помните не такой

    00:45:11 - 00:47:35

  • работает как она не работала попробуйте написать не менее не здесь не здесь подождите стойте стойте сын там мы хотим все принимать мы не хотим принимать чуть ниже просто до почти тогда но вот на эту строчку будет ругаться скажет вы же ее удалили сегодня посол это я не буду использовать на точно нужно понять вообще в чем смысл чего хотят то есть не обязательно говорить сколько здесь там выведется чего но хотя бы что это считают и опускаете самое важная часть если если понять что это такое к чему они у кривой did даетесь

    00:46:59 - 00:50:07

  • если вы получается ну что-то произойти да но не совсем так на самом деле здесь semper sint совсем играет другую rollers мистическую то есть у нас идет представление числа да точно и там получается 11 нужно перевести в бинарную систему там получается вот так и мы делаем амперсенд с десятью ой а 10 это получается вот так и в итоге мы получаем так единичка нолик единичкой нолик то есть получаем из 11 и получаем 10 контор у нас увеличится не единичку в этот момент так как x у нас равен 10 мы продолжаем идти дальше мы опять делаем

    00:49:16 - 00:51:45

  • 10 до и 9 сейчас 10 percent 9 и у нас получается 1000 в этот момент у нас к утру же 2 а дальше мы делаем восьмерку эту самое с числом который на единицу меньше должны быть 0111 они согласны расчет избита в которой он и единицы а здесь у нас будет 0 и в этот момент мы вылетаем из цикла здесь получать мы раз два три раза побывали здесь эккаунт равно 3 защита функция который просто считает забитые которые мы единицы только здесь они дают знаете какое число они там дают вот такое число и сиди вычислять

    00:50:45 - 00:52:42

  • такой битого и его представление я в этом случае всегда когонить маленькое число беру и смотрю как на этом примере будет смотреться шаблон которые на этапе компиляции вычисляет факториал вот ваша задача написать тут кое-что чтобы это работало потому что сейчас она не работает мы простить я забыл скопировать извините надо похоже на рекурсию у нас в рекурсии всегда основная часть всегда задайте вопрос будет ли конец вот эта база должна быть как и ее нужно поменять чтобы у нас это была базой смотрите здесь должна быть

    00:51:55 - 00:54:41

  • специализация здесь мы укажем что на самом деле нам ничего не нужно и ты здесь смотрите скобочки пустые вот вот так скобочки пустые а здесь вот мы что-то указываем когда нам нужно остановиться здесь ну например вот вот здесь вот на на указать допустим здесь это у нас единичка мы говорим ничего создавать не надо мы уже знаем что здесь будет наша было вообще такая сложная тема стоит туда попасть и не выберешься давайте совершать этот вопрос чем отличается единиц бтр от шариками здорово вы так не знаем не понравился

    00:53:31 - 00:56:17

  • прям так хорошо все знаете есть какие такие вот небольшие молодец продолжайте дальше как изучение мне прям радует когда люди так много знает потому что

    00:56:05 - 00:57:27