*Друзья, если вы решили изучать программирование и подписались на канал - рекомендую вам нажать колокольчик чтобы никогда не пропускать новые уроки!*
@zaramar82507 жыл бұрын
Спасибо огромное,прямо все по полочкам разложил.
@lelouchlamperug68365 жыл бұрын
получается используя один и тот же указатель data, мы не копируем, а просто перезаписываем одну область памяти, разве нет?
@lboomiellboomiel16404 жыл бұрын
Спасибо большое полезный контент. Изучаю программирование достаточно долго, хоть я и новичек. Сделал вывод, что среди всех, лучше всего учиться у тебя. Удачи, пили еще контента. Каждое видео обожаю
@greatskydrake95314 жыл бұрын
Конструктор копирования надо объявлять в заголовке класса ?
@lboomiellboomiel16404 жыл бұрын
Great Sky Drake конструктор копирования объявляется внутри класса. Это как обычная функция, только со своим синтаксисом
@SimpleCodeIT7 жыл бұрын
Урок довольно сложный и длинный, на запись и монтаж потратил 3 часа. Но конструктор копирования один из важнейших моментов в ООП, так что надеюсь всё не зря. Всем настойчивости в обучении! =)
@СергейКравченко-щ6р7 жыл бұрын
Было бы хорошо, если бы Вы выложили исходный код в группе в ВК, так как после просмотра Вашего видео полезно реализовать даже идентичный код, то есть по памяти написать такой же и всё хорошенько усвоить, так как урок действительно не с лёгких. Мое мнение как новичка! СПАСИБО ЗА УРОК!
@pluto26567 жыл бұрын
а как статические объявленные свойства копировать в конструкторе копирования. Или их не нужно копировать
@СправаФея7 жыл бұрын
Pluto, да просто чз присваивание копировать. на видео, обрати внимание на статическую переменную int Size, которую объявили в 140 сроке, дак вот копирование этой переменной организовано в "конструкторе копирования" в 121 строке: this->Size = other.Size;. Ну, а если в твоем классе динамические переменные вообще отсутствуют, и ты пользуешь только статические - тогда тебе подойдет "стандартный" конструктор копирования объектов. т.е., самому перегружать этот конструктор тебе в принципе смысла нет,
@inex5506 жыл бұрын
Всё доходчиво и понятно, спасибо за ваши уроки!
@ZestRise5 жыл бұрын
@@СергейКравченко-щ6р Я бы вам рекомендовал просмотреть видео несколько раз, ПОНЯТЬ смысл, и реализовать такой конструктор самому, так как это будет лучшим способом написания кода, а не его копированием. успехов
@rocker56522 жыл бұрын
Вы только представьте, сколько людей, благодаря вам написали лабы, сдали зачеты, написали экзамен, закрыли сессию.. С ума сойти, огромнейшая благодарность.
@N32-e1g2 жыл бұрын
0
@Пользовательпрофессионал2 жыл бұрын
@@N32-e1g у меня вся группа в универе смотрит эти лекции, и это только 1 курс, а всего их 4, так что цифра там большая)
@N32-e1g2 жыл бұрын
@@Пользовательпрофессионал смотреть им мало чем поможет
@userrishiy2 жыл бұрын
@@N32-e1g поможет ещё как) если тебе не помогло, стоит задуматься.
@N32-e1g2 жыл бұрын
@@userrishiy я имею ввиду что нужна и практика
@БорисКатовский5 жыл бұрын
Мой фарш в голове согласился принять это только с 4-го раза!! Хоть и тема трудноватая, но вы обладаете крутейшими преподавательскими способностями!!!! Спасибо, Сергей!!!!
@terrarianxyt8332 Жыл бұрын
Тема настолько сложный что мой фарш стал котлетом, кого нибудь угостить?
@saintnikija7821 Жыл бұрын
@@terrarianxyt8332 как успехи?
@Isturfore6 ай бұрын
как успехи в программировании
@kanacolt1347Ай бұрын
24 год, 3 октября, двенадцать ночи. А я сижу и смотрю семилетней давности видео, потому что не повезло с преподами. И что бы я без Вас делала? Спасибо большое, за то, что Вы есть! Всего Вам самого лучшего!
@АнтонБелоконь-т4юАй бұрын
тоже самое
@juliakond93936 жыл бұрын
Спасибо огромное! Учусь в академии на программиста. Ваш канал посоветовала всем одногруппникам. Многие из них стали смотреть Ваши уроки. Недавно один из одногруппников сказал мне:"Забил на все и сутки смотрел SimpleCode, не мог оторваться". Как дополнительный материал Ваш канал просто бесценен!!!
@BrownAleks4 жыл бұрын
Скорее всего : Дополнительный материал, это то, что - "Учусь в академии на программиста", к тем урокам которые преподаёт Сергей? Вы наверное так хотели выразится? XD)))
@Isturfore6 ай бұрын
как у тебя по программированию?
@juliakond93936 ай бұрын
@@Isturfore Норм. Работаю. Middle
@SeshAlex6 жыл бұрын
Общая картина понятна, но мозг ой как не хочет детально все усвоить. Спасибо за урок, и как обычно, лайкос:)))
@Isturfore6 ай бұрын
а сейчас усвоил?
@ИванШабунин3792 жыл бұрын
Сергей, не забрасывайте, пожалуйста, канал!! Вы лучший учитель программирования в русскоязычном Ютубе!!!
@ag7720 Жыл бұрын
К сожалению у Сергея спецоперация за окном, этим и вызвана приостановка в выпуске новых уроков
@ghg6759 Жыл бұрын
@@ag7720уроки он забросил еще до войны
@spidpayk0089 Жыл бұрын
@@ag7720 не спецоперация, а война
@ruslandad365 Жыл бұрын
@@ag7720 А он что из Украины чтоли?
@ag7720 Жыл бұрын
@@ruslandad365 вроде бы из Харькова
@Salavat1k5 жыл бұрын
получается алгоритм такой: в паблике класса два конструктора для одного класса: MyClass(int size) и MyClass(const MyClass &other) После старта программы сначала создается объект MyClass a(10) и отрабатывает первый конструктор MyClass(int size) при этом: 1) создается указатель на ячейки памяти *data. Из прошлых уроков такой указатель может также будет указателем на начало массива data[] объекта а. 2) скрытой переменной Size объекта присваивается значение size=10 3) массиву data[] устанавливается динамический размер =10 4) массив циклом заполняется значениями от нуля до девятки 5) выводится на экран сообщение "Вызвался конструктор" далее в main переходим ко второму объекту класса MyClass b(a) и отрабатывает уже второй конструктор MyClass(const MyClass &other): 1) скрытой переменной Size объекта b присваивается значение size, такое же как у объекта а 2) создается указатель *data и выделяется память для нового объекта b или иначе для нового массива data[] объекта b. 3) через цикл в каждую ячейку массива объекта b копируются значения массива объекта а 4) вызывается сообщение "Вызвался конструктор копирования" получается два одинаковых объекта с разными адресами памяти. далее вызывается деструктор для второго объекта и потом для первого. Это гениально просто! Получается, что применяется своеобразная перегрузка конструкторов. Однако на данном этапе не понятна практическая ценность этого, она расскрывается в следующем уроке.
@sheldon37055 жыл бұрын
Я только не понял если у нас скрытой переменной Size объекта b присваивается значение скрытой переменной Size объекта a, то зачем в данной строчке кода: this->data = new int[other.Size] и данной строчке кода: for (int i(0); i < other.Size; i++); писать размер массива other.Size а не просто Size? Ведь скрытая переменная нового объекта b уже хранит в себе значение скрытой переменной Size объекта a.
@flown4qqqq5 жыл бұрын
@@sheldon3705, а какая разница? В данном случае ничего же не меняется. Что мы напишем "this->data = new int[other.Size], что просто this-> data = new int [Size], результат будет одним и тем же
@sheldon37055 жыл бұрын
Вот я и спрашиваю почему именно озер сайз написано. Мне ответили что для большей читаемости и понятности кода. Ты тоже учишься по его урокам сейчас?
@MRWOLFHACK5 жыл бұрын
@@sheldon3705 Люди учатся по разным учебникам курсам и т.д к примеру он нас учит делать код кто-то повторяем его манеру а кто-то нет,в програмирование как в картинной галереи кто-то считает эту картину красивой и делает похожее на нее а кто-то другую тоже с other.Size и Size кто как хочет так и пишет , а стандарты нужны лишь для того чтобы все понимали код. ЕСЛИ В КРАТЦЕ ТО КТО-ТО ПИШЕТ other.Size А КТО ТО ПРОСТО Size P.s Отпишитесь если меня не поняли P.p.s Ах да читаете иностранные форумы там тоже есть много похожих вопросов
@MRWOLFHACK5 жыл бұрын
@@flown4qqqq Верно но по-моему мы с ответом запаздали
@9080artur4 жыл бұрын
Это просто самый лучший преподаватель, которого я встречал в своей жизни, так, как Вы обьясняете, не обьясняет никто. Посмотрел пару раз заново видео, было все равно непонятно, на 5 раз я понял как это элементарно и гениально, будто что-то щелкнуло в голове. Я обязательно часть первой зарплаты с работы в IT отправлю Вам. Спасибо большое!! Огромное, человеческое спасибо!!!
@Isturfore6 ай бұрын
как успехи
@человечина-ц3е5 ай бұрын
как успехи
@shirker39724 ай бұрын
как успехи
@Дмитрий-л2д6щ3 ай бұрын
О, живые люди
@sadMilkT_T4 жыл бұрын
По вашим урокам понял и изучил больше чем за 2 семестра в институте, вот бы все преподаватели также хорошо всё объясняли, спасибо вам огромное!
@Empty_line Жыл бұрын
Привет как успехи? Можешь ответить на вопрос? Почему другой: 16:04
@Isturfore6 ай бұрын
как успехи
@ОлексійЛебедєв-ж6о6 жыл бұрын
Мдааа. Сложновато с первого раза. но ставлю лайк :))
@Isturfore6 ай бұрын
как успехи
@yegorpo20437 жыл бұрын
Спасибо за проделанную работу
@sov.harlem9345 жыл бұрын
Понял с первого раза, новичков может сильно спутать пример применения Кк. Вот, кто сразу не понял, постарался вычленить суть: Конструктор копирования - конструктор, реализуемый по умолчанию, и вызываемый при копировании объекта класса(передача параметром переменной типа класс). Его особенность в том, что он делает абсолютно идентичную копию объекта побитово. Это может создать проблему в том случае, когда в описании класса мы реализуем динамический массив. В таком случае, при копировании экземпляра класса, динамический массив тоже скопируется, а также и адрес его указателя. Иначе говоря, два указателя будут хранить один и тотже адрес, и когда мы попытаемся реализовать оператор delete[] в деструкторе, он попытается дважды очистить одно и тоже место в оперативной памяти, что и вызовет ошибку. Синтаксис: class Human { public: Human(const Human &other) //передача параметром объекта типа класс, разумеется, по ссылке { } };
@YanganiV2 жыл бұрын
Спасибо! Теперь я понимаю что к чему.
@arsIsv2 жыл бұрын
То есть по факту КК нужен для выборочного копирования, либо аккуратного копирования если есть указатели?
@gok4260 Жыл бұрын
что такое кк
@isolaneed2445 Жыл бұрын
@@gok4260, конструктор копирования
@РоманВасин-ю1р4 жыл бұрын
После первого просмотра понял что тема совсем непростая, пришлось откатится назад к уроку по копированию данных из массива в массив. Хотелось бы больше практических занятий по данным урокам, это как пожелание. . Ещё раз спасибо за уроки.
@vadimgreen53523 жыл бұрын
Застопорился на этом видео жестко, впал в прокрастинацию на недельку, но я вернулся. Сергей, респект за твои труды)
@Isturfore6 ай бұрын
как успехи
@vadimgreen53526 ай бұрын
@@Isturfore пишу свой квест
@shaa81936 жыл бұрын
Смотрел где-то месяц назад не понятно было, понял что я что-то да пропустил, пересмотрел всё заного и наконец-то понял. Спасибо ^^
@batfist65955 жыл бұрын
месяц назад: не хватает уровня мудрости
@Roizel-zm1bd4 жыл бұрын
@@batfist6595 Ваш интелект слишком низок для заклинания "Конструктор копирования".
@ivanliaz9 ай бұрын
@@batfist6595 🤣
@Isturfore6 ай бұрын
как успехи
@shirker39724 ай бұрын
@@Isturforeкак успехи
@armanmanukyan19705 жыл бұрын
Выскажусь по поводу всего курса. Канал - шикарный. Подача материала - просто о сложном.Без воды, все по делу.Хотелось бы, в Вашем изложении, разобраться с конструкторами переноса и, в целом, с "move semantics".Спасибо за Ваш труд.
@yanvolkovich14145 жыл бұрын
спасибо тебе хороший и умный человек за твои уроки, если бы не ты, не знаю как бы в этом всем разбирался, комменты никогда не пишу, но уроки настолько хорошие, что нельзя не поблагодарить, здоровья тебе и твоим близким!
@s4ymyn4me44 Жыл бұрын
Для тех, кто не понял: в случае, когда мы имеем дело с динамическим массивом (а не просто с какой-нибудь переменной), конструктор копирования по умолчанию копирует поля объектов (неглубоко), т.е. указателю на массив нового объекта присвоится адрес массива скопированного объекта, а фактически мы будем иметь один и тот же массив. В таком случае у нас после выхода из области видимости функции будет вызываться деструктор для обоих объектов, но очищать память они , что приведет к ошибке. Чтобы этого избежать, нам нужно написать конструктор копирования (глубокого) такой, что копироваться будет не указатель на один и тот же массив, а создаваться новый массив со скопированными из него элементами, тогда деструктор скопированного объекта будет удалять "свой" массив.
@ДашаКолпакова-й4ш9 ай бұрын
.
@Никита-с9г7 ай бұрын
Конч, ты не умеешь объяснять, куда ты лезешь. Поля, глубокого, неглубокого- все термины впихнул, чтоб усложнить. Иди пиши свой говнокод лучше
@SibMetalStarlight6 жыл бұрын
Поставил на паузу на 5:08, пишу. При передаче параметра по значению, внутри функции создаётся локальная копия переменной (того типа, который указан в списке принимаемых параметров). Из памяти - честно, как и просили :) Сегодня сложный, но достаточно хорошо разжеванный урок. Спасибо за работу!
@bookuha3 жыл бұрын
Спасибо большое! Зашло на ура) хоть и появлялись сомнения о выборе карьеры и мысли о тщетности бытия, но к середине урока всё просто мигом прояснилось
@aleksmall74495 жыл бұрын
Самое сложное в программировании - это понять нахй это может пригодиться, так освоить было бы легче) Но определенно это лучшие лекции, вам в университете преподавать
@Kokurorokuko3 жыл бұрын
Не совсем согласен. Иногда достаточно поверить преподавателю, что это важно, и лучше это сразу усвоить. Но соглашусь, что с примером, как применять, обычно изучать что-то новое приятнее и легче.
@КириллГусарев-р5х2 жыл бұрын
@@Kokurorokuko преподавателям программирования доверять нельзя. Многие из них ничего не понимают.
@Isturfore6 ай бұрын
как успехи
@zvoni035 жыл бұрын
наверное где-то с 22ой минуты потерял связь) спасибо за урок) на вас держится весь ютуб, благодаря вам он не помойка
@jane50829 ай бұрын
Спасибо, очень понятный разбор!!
@igorbologov8452 Жыл бұрын
2 года назад начал с ваших уроков, сейчас уже работаю программистом, с тех пор познакомился с Си, Rust, Python. Сейчас снова нужно было начинать писать на с++, возвращаюсь иногда к урокам, чтобы освежить некоторые моменты и понастальгировать:) Спасибо огромное!
@By_B0SS Жыл бұрын
а как вы учились и потом вот запоминали это все ? может смотрели еще что то кроме этих уроков ? когда учились здесь или вообще как вы осваивали язык когда начинали учиться ?
@igorbologov8452 Жыл бұрын
@@By_B0SS начинал с этих уроков, потом переключился на написание шейдеров, помимо этого еще кучу разных видосов смотрел, повторял, что делают ,пытялся сам разобраться. Купил курс в универе по питону, его прошел чисто по приколу. Алгоритмы и с труктуры данных наше все и куча практики. И я всё равно еще лошара, так что да, это нелегко
@iouribalachov21083 жыл бұрын
Долго держался, но вынужден признать - преп и его уроки гениальны!!! Другим далеко в объяснении подобных сложных вещей!!! Благодарю, и успехов и процветания !!!
@osinandrey735 жыл бұрын
Из выше сказанных уроков все было относительно понятно, при написании кода. По этот урок!!! Суть понятна, написать такое копирование сложно. Буду пересматривать. Спасибо Сергею за такие уроки.
@yuriynesterenko92806 жыл бұрын
Спасибо за труды!) Довольно сложная тема в С++, но без нее никак!
@Isturfore6 ай бұрын
как успехи
@LenTos13376 жыл бұрын
Спасибо вам большое за урок, как всегда. Очень сложная тема, но вы как всегда всё детально объяснили, и я даже умудрился всё понять! Ещё раз, огромнейшее вам спасибо за труд
@АртёмГуртиков-х9ч3 жыл бұрын
Пусть С пятого раза, но я все понял !!! Терпение и труд все перетрут ... спасибо Сергей за ваш труд!
@disgust98624 жыл бұрын
четвёртый раз пересматриваю, спасибо за труды
@sorrynomorenickname4 жыл бұрын
Очень толково объяснено. Тем, кому сложно - посоветую изучить работу с указателями, в рамках того же языка Си.
@gritsienkooleg34475 жыл бұрын
Спасибо огромное за ваши видео, приятно, когда не упускают ни одного момента и досконально объясняют, запоминается лучше, понятно всЁ!
@Isturfore6 ай бұрын
как успехи
@svitlanashpilova64073 жыл бұрын
Действительно тяжелый урок. Благодарю.
@woodlandfantomas20443 жыл бұрын
Отличное изложение. Пользуюсь Вашими уроками как справочником, когда нужно восстановить то, что забыл.
@elvinaustin10225 жыл бұрын
Спасибо Серега , за 3 захода все понял досконально, все разложилось в голове по полочкам на третий раз просмотра )). Спасибо еще раз от души. По книги это можно неделю изучать )))
@Константин-б8з8ы6 жыл бұрын
за неделю 90 видосов просмотрено, спасибо за труд
@Kokurorokuko3 жыл бұрын
Главное - смотреть вдумчиво. Хорошо, если Вы так и делаете.
@kabanenko53193 жыл бұрын
Спасибо большое, очень понятно все объяснил. После твоих уроков так и хочется придумать себе задачку по теме и решить ее.
@bodamat4 жыл бұрын
Спасибо большое! Урок хоч очень длинний, но очень важний. Я много чего понял. Спасибо еще раз!
@archiechellaut94833 жыл бұрын
Большое спасибо вам за урок и прекрасное пояснение, Сергей!
@able_channel48112 жыл бұрын
Дядя я тебя обожаю. Оооооочень помог. Спасибо огромное. Лучше курса на ютубе чем ваша работа - нет
@Bagasl5 жыл бұрын
Автор, это лучший курс русском ютубе по программированию в принципе, даже если рассматривать другие языки. Огромное тебе спасибо за то, что ты объясняешь всё, что под "капотом" происходит. Именно то, что я искал. Можешь посоветовать какие нибудь книги, чтобы лучше понять процессы, которые происходят на низком уровне, вроде работы памяти, garbage colector'a и тд. Не именно в плюсах, а вообще в целом при программировании
@АртемБатьков-м6ю2 жыл бұрын
5:07 -когда передается по значению, это значит в теле функции создается локальная переменная, с которой мы делаем что захотим, но при выходе из тела функции, эта переменная будет удалена. Тогда в main мы не увидим изменений у той переменной, которую передали в функцию.
@MosqRap5 жыл бұрын
Помню смотрел твои видосы, когда у тебя еще были лишь сотни просмотров) Вот сейчас пересматриваю, т.к. через месяц гос. экзамен, и нужно всё повторить) Спасибо за твой труд!
@Isturfore6 ай бұрын
как успехи
@SmileTop80676 жыл бұрын
спасибо за подобного рода уроки)
@androidpasha3 жыл бұрын
5:08 Честно пишу ответ что происходит: выделяется память в которую копируется значение переменной и с новой переменной работает класс(функция)
@СергейПетров-б1ф4 жыл бұрын
Зашел спустя полгода после первого просмотра данного видео, теперь все понятно, спасибо, Сергей!
@raztarg4adchadov9142 жыл бұрын
Здравия всем родам!!! Ёлы палы. 2 дня разбирал этот урок. Мудрость приходит с годами, но в основном годы приходят одни))
@rizabekutegenov54235 жыл бұрын
Спасибо вам огромное!
@ФишкиОтАйтишника5 ай бұрын
Спасибо огромное, ждём новых уроков!
@МихаилКрылов-п5ч3 жыл бұрын
Ну сложно для восприятия, но после второго просмотра стало всё ясно. Спасибо большое за урок
@sergey_savinov9 ай бұрын
Февраль 2024, очень понятно и приятно изучать плюсы по вашим видео. Некторые моменты очень удивительны после питона:)
@qIKraytonIp5 жыл бұрын
2дня сидел учил, пересматривал , но в итоге понял , спасибо!
@rayansamerkhanov54383 жыл бұрын
Спасибо, ты просто бог по объяснению. Все очень понятно и круто!
@dekstor56576 жыл бұрын
Непростой урок, но ближе к середине я понял к чему это конструктор. Спасибо за урок!
@Nikitunr20134 жыл бұрын
Фух. С 4-го раза понял. Оказывается все было очень просто... Спасибо за годный видос, однозначно лайк!) Если кому поможет - this для каждого индивидуален, так как в параметре функции мы вводим новую переменную как ссылку, то имеем право пользоваться данными класса, который был отправлен в параметр функции...
@WHOAMI-oh3if5 жыл бұрын
Очень хорошо рассказано, если вам не понятно, то значит вы что-то упустили в предыдущих уроках или не достаточно практики в плане выделения динамической памяти или в понимании создания дубликатов в функциях при передачи параметров по значению
@alexdi54236 жыл бұрын
Немного пояснений. Конструктор копирования - это тот же самый обыкновенный конструктор, который срабатывает при создании обьекта. Но благодаря перегрузке срабатывает код конструктора который принимает в качестве параметра объект.
@aleksandrdrobyshev76234 жыл бұрын
Жаль, что нельзя помечать коментарии как-то, типа "ценный", чтоб они вылезали поверх всего мусора, что тут написали.
@wasony.1264 жыл бұрын
👏👏👏👌
@flepjack3 жыл бұрын
Спасибо за урок, каждый раз смотрю до тех пор пока не станет тяжело соображать, в этот раз остановился на этом уроке)) завтра с него и дальше) огромная благодарность, это лучший курс в рутубе!
@Евгений-ф9я3о6 жыл бұрын
Ничего не понял. Буду пересматривать.
@vladivchenko8734 жыл бұрын
VSЁ мне понадобилось пересмотреть 3-4 раза чтобы что-то понять)
@lacklacktriplehack41744 жыл бұрын
я конечно не гений и никогда себя таковым не считал но чего сложного то? перед просмотром ролика аж на пол часа решил глянуть комменты мол "ёмана щито происходит" подумал блин походу будет сложно посмотрел на одном дыхании и вообще не выкупил где же cyko это сложно то?
@Евгений-ф9я3о4 жыл бұрын
@@lacklacktriplehack4174 ну молодец, что еще скажешь то тебе))
@Evgeny..4 жыл бұрын
Посмотрел 2 раза и не до конца понял)
@Никита-с9г7 ай бұрын
@@lacklacktriplehack4174держи в курсе. Если что ты остался таким же долбоебом даже поняв этот ролик
@ИльяЯкобсон-ю7ж4 жыл бұрын
Это гениально. Настолько детальный сложный разбор и ты реально смог это объяснить. Спасибо большое! Было сложно. Прервался на третьей итерации просмотра=)
@tapirskiy5 жыл бұрын
создается новая переменная внутри функции и ей присваивается значение, в итоге исходная переменная не меняется, вроде так)
@parampampam44775 жыл бұрын
Большое спасибо за уроки
@rearden38205 жыл бұрын
Раза со второго все понял, спасибо за урок!
@romanbondaruk96823 жыл бұрын
В зависимости от параматра функция или метода , функция либо копирует аргумент и уже тело функции работает с копией аргумента, или же если параметр єто указатель, тогда функция работает непосредственно с самим обьектом.
@РоманОрлов-у4ю6 жыл бұрын
Спасибо Вам большое за Ваш огромный труд!
@АлександрЛитвинюк-х2ы4 жыл бұрын
Спасибо за знания !
@ebjikkolu47576 жыл бұрын
Что происходит,что происходит....Уже не понимаю ,что происходит,как только закончилось процедурное программирование и началось объектно-ориентированное))))
@deltaeptat15464 жыл бұрын
Я всё же не понимаю, что тут сложного? Как по мне ОО программирование раз в 100 легче процедурного. Кста, какой результат за 2 года? :)
@Heart_of_the_world_19853 жыл бұрын
Главное не сдаваться и "грызть"! Не получается - ляг отдохни, а потом запускай плуги глубже - по предложению, отдельному слову... Смысл в том, что данный урок аккумулирует в себе знания и терминологию предыдущих уроков. Твои знания еще не достаточно сжаты в "оперативке", чтобы свободно ими оперировать образно-виртуально и ты не успеваешь за логикой подачи информации - лист бумаги, код - рисуй и делай свою "область тьмы" светлой! Сергей - киберхристос - такие знания за какой-то лайк)))
@Kokurorokuko3 жыл бұрын
@@Heart_of_the_world_1985 "По отдельному слову" реально работает. Когда понимаешь каждое отдельное слово, нетрудно понять смысл предложения. А потом эти предложения вместе собираются во вполне осмысленный текст.
@Isturfore6 ай бұрын
как успехи
@russiantutorials4763 Жыл бұрын
Передача параметра по значению это когда создается копия этого значения, передача параметра по указателю это когда передается указатель (адрес памяти) и этот указатель может указывать на какое-то значение, а передача параметра по ссылке, это так же передача параметра по адресу памяти, который ссылается на какое-то значение (массив, переменную), но в отличие от указателя, не требуется операция разыменования. И еще очень важный момент отличия ссылки и указателя: указатель это самостоятельный объект, который может быть инициализирован без явного указания того, что в нем лежит. Ссылка же, наоборот, не самостоятельный объект, который не может быть инициализирован без явного указания того, что в нем лежит, однако может быть инициализирован, если туда положить какую-то переменную.
@rajinthunderkeg50056 жыл бұрын
Огромное спасибо за столь качественный материал, Сергей! С первого раза не зашло, только после нескольких просмотров мой разум прозрел и я понял, что здесь к чему :) Главное - долбить в одну точку и не останавливаться и тогда точно всё получится!)
@Isturfore6 ай бұрын
как успехи
@artembystrov11133 жыл бұрын
Довольно легко если все уроки смотреть, спасибо за ролик!)
@ton12047 Жыл бұрын
Ну что сказать? Посмотрел первый раз - кое-что стало ясно, до далеко не все. Очевидно надо еще раз или два посмотреть. Тема действительно не очень простая. Очень очень жаль что нет заданий которые могли бы хоть как-то закрепить материал. Пытаюсь вспомнить что, и зачем я изучал в районе 40-х или 50-х уроков и ничего толком не помню. Хотя бы 100-200 задачек бы на этот курс , был бы от курса совсем другой прок. Ну огромнейшая благодарность автору! Зачем мне все эти знания я и сам не знаю, но учиться по этому курсу-большое удовольствие.
@Empty_line Жыл бұрын
16:03 Что это значит😶?
@kaliban12 Жыл бұрын
Работаю в студио 2022 и на этапе, когда создаем функцию Foo2(), у меня нет второго вызова деструктора, синтаксис абсолютно одинаковый, но при этом. при прохождении return temp; он не заходит в деструктор еще раз.
@sae9016 Жыл бұрын
Скорей всего просто обнова и тут работает по другому у меня тоже самое . просто до этого в кометах и про strcat_s писали
@ДенисКлаузов-в4и8 ай бұрын
такая же проблема. Надо посмотреть при создании динамического массива будет ли ошибку показывать или нет.
@Isturfore6 ай бұрын
+ также
@seastraus14 жыл бұрын
При передаче объекта класса MyClass в функцию Foo по значению в ней будет создан еще один такой же объект, но с одним отличием вместо данных он будет содержать указатели на данные первого объекта.Таким образом на момент работы функции Foo мы будем иметь два объекта которые указывают на одни и те же данные. С окончанием работы функции Foo отработаем деструктор локального (второго) объекта уничтожив как сам объект, так и данные на которые он ссылается. Далее с окончанием работы функции main() будет вызван деструктор первого объекта и при попытке уничтожить не существующие данные по уже битому к тому времени указателю на данные мы получим исключительную ситуацию (вылет).
@iamabbadon94216 жыл бұрын
При передаче по значению значение переменной из другой функции будет лишь передано свежесозданной функции исключая таким образом изменение данных в оригинальной переменной.
@alexanderwagner819911 ай бұрын
Урок в 30 минут пролетел как за 5. Очень круто.
@Empty_line9 ай бұрын
28:15 Почему в указателе data ничего нету если только что там было значение 10?
@nikitaionov5610 Жыл бұрын
После этого урока понял что самостоятельное обучение видимо явно не для меня.У меня например происходит иначе нежели чем в видео, как в этом разобраться самому, без подмоги не ясно. Нужно задать вопрос, а задать его некому, да и гугл особо не спасает. Не зря видимо интуиция меня толкнула записаться на живое обучение с преподавателем, пускай это и платно, зато хоть есть до кого докопаться, и получить ясность происходящего
@rostyslavklyba17465 жыл бұрын
Спасибо Вам Сергей, хорошие уроки. Этот урок довольно сложный, нужно смотреть несколько раз.
@almatytelecom14 жыл бұрын
я все понял, но до этого читал много , и в книге было непонятно.... но с помощью ваших уроков . Все уложилось. Самое главное понимать смысл передачи и возврата по ссылке. Ну и по значению... Особенно это касается указателя this. А и еще я так понял отладчик это пипец тема для изучения внутренних принципов работы компилятора!
@ИгорьСамонов-ж3д7 жыл бұрын
5:00 Переменная value типа Myclass будет видна только в области видимости void Foo и не повлияет на другие переменные. Upd: не совсем верно написал) - на эту переменную value никак нельзя будет повлиять из другого места программы, кроме как в этой функции Foo.
@РоманТеплинский-о8у5 жыл бұрын
Поставил на паузу как просил учитель. Попробую объяснить: Итак, значит главная функция вызывает функцию Foo передавая параметры типа MyClass. Соответственно происходит копирования данных объекта класса которые передаются в функцию Foo в указатель value. Возможно что-то не так. Мне кажется я все понимаю. Но объяснить языком программиста все это сложно = )
@bulba19952 жыл бұрын
Поставил на паузу и понял что я ошибся после просмотра 34 видео . Попутал все . Но спасибо постараемся запомнить. Уверенн что еще буду пересматривать много раз ваши видео .
@dimasavukov62306 жыл бұрын
Сергей! Спасибо Вам за проделанную работу ! Вьехал в тему только наверное с 7 раза . в учебниках рассказывают про конструктор копирования очень размыто. (искал в 5 книжках). Если устроюсь в сфере IT, то свою первую зарплату - отправлю в помощь Вашему каналу !!!!
@Wardriving6665 жыл бұрын
Ну как, устроился?
@паносниглайдер3 жыл бұрын
@@Wardriving666 А ведь он до сих пор не ответил
@Wardriving6663 жыл бұрын
@@паносниглайдер Я не сомневался что не ответит >:)
@gamepwoandrey3 жыл бұрын
чел ты как там? устроился или нет?
@geroitruda81572 жыл бұрын
@@gamepwoandrey , походу так его никто и не взял на работу.
@youjustillusion5364 жыл бұрын
Создается копия той же переменной, которую мы передаем) Класс!
@SweeTShooT5 жыл бұрын
огромное спасибо за проделанную работу
@circularka95136 жыл бұрын
Спасибо огромное. Даже не знаю, как бы я понял эту тему без вашего объяснения
@yusvel6293 жыл бұрын
Не знаю насколько вопрос Сергей актуален( что происходит при передачи параметра в функцию по значению), но думаю, что происходит создание новой переменное со своим отличным адресом в памяти, и функция уже работает с новой переменной, значение которой равно значению переменной, переданной этой функции.
Спасибо! Сложный урок, но интересный. Думаю еще раз пересмотрю и с отладчиком пройдусь повторно.
@vadimturok594 жыл бұрын
Пересмотрел видео 2 раза, со второго раза наконец-то понял, для меня как новичка сложновато но справился
@viktort93265 жыл бұрын
Если не вдаваться в подробности создания конструктора копирования именно для этого случая, то всё очень даже понятно! Суть такова, что мы делаем всё вручную, что должен был сделать констр. копирования. Выделяем отдельное место в памяти, создаём там массив с уже другим адресом.
@bama26193 жыл бұрын
Спасибо Узнал о потенциальной ошибке копирования Важный момент
@lexus9526103 жыл бұрын
На третий раз понял спасибо)+ отдохну перед третьим просмотром)
@НикитаЧуйков-э4э4 жыл бұрын
Создаётся копия переменной в памяти и в функцию передаётся уже она, типа передача по значению не меняет значение исходной переменной в отличии от передачи по адресу.
@kanfortdark97625 жыл бұрын
Посмотрел урок, ничего не понял. Посмотрел ещё раз, ничего не понял. Начал гуглить, ничего путного не нашёл. Спустя 4ч мучений и игр разума Я смог понять, как реализовать сам процесс копирования. Было сложновато понять, что такое other.Size, other.data. Очень долго не мог понять, что эта запись означает, и как она влияет на логику кода. В целом - самый качественный урок из всех, что Я нашёл. БОЛЬШОЕ СПАСИБО ЗА ТРУДЫ!!!
@lelouchlamperug68365 жыл бұрын
так что такое other?
@joyvektor451 Жыл бұрын
Спасибо за урок!
@Empty_line Жыл бұрын
16:03 Что это значит😶?
@viktort93264 жыл бұрын
28:31 Для чего тут мы используем this->date=new int [other.Size] ; ?? Нельзя ли просто написать this->data= new int [ this->Size] ? Или this->data= new int [ Size] ? Ведь мы уже выше в коде скопировали this->Size = other.Size
@ilya40682 жыл бұрын
можно , просто он это писал раньше чем this->Size->other.Size