Тёмный

Конструктор копирования. Что это. Пример. Когда вызывается Копирование объектов по умолчанию C++ #82 

#SimpleCode
Подписаться 372 тыс.
Просмотров 321 тыс.
50% 1

Опубликовано:

 

30 окт 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 745   
@SimpleCodeIT
@SimpleCodeIT 7 лет назад
*Друзья, если вы решили изучать программирование и подписались на канал - рекомендую вам нажать колокольчик чтобы никогда не пропускать новые уроки!*
@zaramar8250
@zaramar8250 7 лет назад
Спасибо огромное,прямо все по полочкам разложил.
@lelouchlamperug6836
@lelouchlamperug6836 5 лет назад
получается используя один и тот же указатель data, мы не копируем, а просто перезаписываем одну область памяти, разве нет?
@lboomiellboomiel1640
@lboomiellboomiel1640 4 года назад
Спасибо большое полезный контент. Изучаю программирование достаточно долго, хоть я и новичек. Сделал вывод, что среди всех, лучше всего учиться у тебя. Удачи, пили еще контента. Каждое видео обожаю
@greatskydrake9531
@greatskydrake9531 4 года назад
Конструктор копирования надо объявлять в заголовке класса ?
@lboomiellboomiel1640
@lboomiellboomiel1640 4 года назад
Great Sky Drake конструктор копирования объявляется внутри класса. Это как обычная функция, только со своим синтаксисом
@rocker5652
@rocker5652 2 года назад
Вы только представьте, сколько людей, благодаря вам написали лабы, сдали зачеты, написали экзамен, закрыли сессию.. С ума сойти, огромнейшая благодарность.
@N32-e1g
@N32-e1g 2 года назад
0
@Пользовательпрофессионал
@@N32-e1g у меня вся группа в универе смотрит эти лекции, и это только 1 курс, а всего их 4, так что цифра там большая)
@N32-e1g
@N32-e1g 2 года назад
@@Пользовательпрофессионал смотреть им мало чем поможет
@userrishiy
@userrishiy 2 года назад
@@N32-e1g поможет ещё как) если тебе не помогло, стоит задуматься.
@N32-e1g
@N32-e1g 2 года назад
@@userrishiy я имею ввиду что нужна и практика
@SimpleCodeIT
@SimpleCodeIT 7 лет назад
Урок довольно сложный и длинный, на запись и монтаж потратил 3 часа. Но конструктор копирования один из важнейших моментов в ООП, так что надеюсь всё не зря. Всем настойчивости в обучении! =)
@СергейКравченко-щ6р
Было бы хорошо, если бы Вы выложили исходный код в группе в ВК, так как после просмотра Вашего видео полезно реализовать даже идентичный код, то есть по памяти написать такой же и всё хорошенько усвоить, так как урок действительно не с лёгких. Мое мнение как новичка! СПАСИБО ЗА УРОК!
@pluto2656
@pluto2656 7 лет назад
а как статические объявленные свойства копировать в конструкторе копирования. Или их не нужно копировать
@СправаФея
@СправаФея 6 лет назад
Pluto, да просто чз присваивание копировать. на видео, обрати внимание на статическую переменную int Size, которую объявили в 140 сроке, дак вот копирование этой переменной организовано в "конструкторе копирования" в 121 строке: this->Size = other.Size;. Ну, а если в твоем классе динамические переменные вообще отсутствуют, и ты пользуешь только статические - тогда тебе подойдет "стандартный" конструктор копирования объектов. т.е., самому перегружать этот конструктор тебе в принципе смысла нет,
@inex550
@inex550 6 лет назад
Всё доходчиво и понятно, спасибо за ваши уроки!
@ZestRise
@ZestRise 5 лет назад
@@СергейКравченко-щ6р Я бы вам рекомендовал просмотреть видео несколько раз, ПОНЯТЬ смысл, и реализовать такой конструктор самому, так как это будет лучшим способом написания кода, а не его копированием. успехов
@kanacolt1347
@kanacolt1347 29 дней назад
24 год, 3 октября, двенадцать ночи. А я сижу и смотрю семилетней давности видео, потому что не повезло с преподами. И что бы я без Вас делала? Спасибо большое, за то, что Вы есть! Всего Вам самого лучшего!
@АнтонБелоконь-т4ю
@АнтонБелоконь-т4ю 13 дней назад
тоже самое
@БорисКатовский
@БорисКатовский 5 лет назад
Мой фарш в голове согласился принять это только с 4-го раза!! Хоть и тема трудноватая, но вы обладаете крутейшими преподавательскими способностями!!!! Спасибо, Сергей!!!!
@terrarianxyt8332
@terrarianxyt8332 Год назад
Тема настолько сложный что мой фарш стал котлетом, кого нибудь угостить?
@saintnikija7821
@saintnikija7821 Год назад
@@terrarianxyt8332 как успехи?
@Isturfore
@Isturfore 5 месяцев назад
как успехи в программировании
@juliakond9393
@juliakond9393 6 лет назад
Спасибо огромное! Учусь в академии на программиста. Ваш канал посоветовала всем одногруппникам. Многие из них стали смотреть Ваши уроки. Недавно один из одногруппников сказал мне:"Забил на все и сутки смотрел SimpleCode, не мог оторваться". Как дополнительный материал Ваш канал просто бесценен!!!
@BrownAleks
@BrownAleks 4 года назад
Скорее всего : Дополнительный материал, это то, что - "Учусь в академии на программиста", к тем урокам которые преподаёт Сергей? Вы наверное так хотели выразится? XD)))
@Isturfore
@Isturfore 5 месяцев назад
как у тебя по программированию?
@juliakond9393
@juliakond9393 5 месяцев назад
@@Isturfore Норм. Работаю. Middle
@SeshAlex
@SeshAlex 6 лет назад
Общая картина понятна, но мозг ой как не хочет детально все усвоить. Спасибо за урок, и как обычно, лайкос:)))
@Isturfore
@Isturfore 5 месяцев назад
а сейчас усвоил?
@ИванШабунин379
@ИванШабунин379 2 года назад
Сергей, не забрасывайте, пожалуйста, канал!! Вы лучший учитель программирования в русскоязычном Ютубе!!!
@ag7720
@ag7720 Год назад
К сожалению у Сергея спецоперация за окном, этим и вызвана приостановка в выпуске новых уроков
@ghg6759
@ghg6759 Год назад
@@ag7720уроки он забросил еще до войны
@spidpayk0089
@spidpayk0089 Год назад
@@ag7720 не спецоперация, а война
@ruslandad365
@ruslandad365 Год назад
@@ag7720 А он что из Украины чтоли?
@ag7720
@ag7720 Год назад
@@ruslandad365 вроде бы из Харькова
@9080artur
@9080artur 4 года назад
Это просто самый лучший преподаватель, которого я встречал в своей жизни, так, как Вы обьясняете, не обьясняет никто. Посмотрел пару раз заново видео, было все равно непонятно, на 5 раз я понял как это элементарно и гениально, будто что-то щелкнуло в голове. Я обязательно часть первой зарплаты с работы в IT отправлю Вам. Спасибо большое!! Огромное, человеческое спасибо!!!
@Isturfore
@Isturfore 5 месяцев назад
как успехи
@человечина-ц3е
@человечина-ц3е 4 месяца назад
как успехи
@shirker3972
@shirker3972 3 месяца назад
как успехи
@Дмитрий-л2д6щ
@Дмитрий-л2д6щ 2 месяца назад
О, живые люди
@SimpleCodeIT
@SimpleCodeIT 7 лет назад
Конструктор копирования. Что это. Пример. Синтаксис. Когда вызывается. Копирование объектов по умолчанию. C++ Для начинающих. Урок#82
@ОлексійЛебедєв-ж6о
Мдааа. Сложновато с первого раза. но ставлю лайк :))
@Isturfore
@Isturfore 5 месяцев назад
как успехи
@sadMilkT_T
@sadMilkT_T 4 года назад
По вашим урокам понял и изучил больше чем за 2 семестра в институте, вот бы все преподаватели также хорошо всё объясняли, спасибо вам огромное!
@Empty_line
@Empty_line Год назад
Привет как успехи? Можешь ответить на вопрос? Почему другой: 16:04
@Isturfore
@Isturfore 5 месяцев назад
как успехи
@Salavat1k
@Salavat1k 5 лет назад
получается алгоритм такой: в паблике класса два конструктора для одного класса: 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) вызывается сообщение "Вызвался конструктор копирования" получается два одинаковых объекта с разными адресами памяти. далее вызывается деструктор для второго объекта и потом для первого. Это гениально просто! Получается, что применяется своеобразная перегрузка конструкторов. Однако на данном этапе не понятна практическая ценность этого, она расскрывается в следующем уроке.
@sheldon3705
@sheldon3705 5 лет назад
Я только не понял если у нас скрытой переменной Size объекта b присваивается значение скрытой переменной Size объекта a, то зачем в данной строчке кода: this->data = new int[other.Size] и данной строчке кода: for (int i(0); i < other.Size; i++); писать размер массива other.Size а не просто Size? Ведь скрытая переменная нового объекта b уже хранит в себе значение скрытой переменной Size объекта a.
@flown4qqqq
@flown4qqqq 5 лет назад
@@sheldon3705, а какая разница? В данном случае ничего же не меняется. Что мы напишем "this->data = new int[other.Size], что просто this-> data = new int [Size], результат будет одним и тем же
@sheldon3705
@sheldon3705 5 лет назад
Вот я и спрашиваю почему именно озер сайз написано. Мне ответили что для большей читаемости и понятности кода. Ты тоже учишься по его урокам сейчас?
@MRWOLFHACK
@MRWOLFHACK 5 лет назад
@@sheldon3705 Люди учатся по разным учебникам курсам и т.д к примеру он нас учит делать код кто-то повторяем его манеру а кто-то нет,в програмирование как в картинной галереи кто-то считает эту картину красивой и делает похожее на нее а кто-то другую тоже с other.Size и Size кто как хочет так и пишет , а стандарты нужны лишь для того чтобы все понимали код. ЕСЛИ В КРАТЦЕ ТО КТО-ТО ПИШЕТ other.Size А КТО ТО ПРОСТО Size P.s Отпишитесь если меня не поняли P.p.s Ах да читаете иностранные форумы там тоже есть много похожих вопросов
@MRWOLFHACK
@MRWOLFHACK 5 лет назад
@@flown4qqqq Верно но по-моему мы с ответом запаздали
@vadimgreen5352
@vadimgreen5352 3 года назад
Застопорился на этом видео жестко, впал в прокрастинацию на недельку, но я вернулся. Сергей, респект за твои труды)
@Isturfore
@Isturfore 5 месяцев назад
как успехи
@vadimgreen5352
@vadimgreen5352 5 месяцев назад
@@Isturfore пишу свой квест
@shaa8193
@shaa8193 6 лет назад
Смотрел где-то месяц назад не понятно было, понял что я что-то да пропустил, пересмотрел всё заного и наконец-то понял. Спасибо ^^
@batfist6595
@batfist6595 5 лет назад
месяц назад: не хватает уровня мудрости
@Roizel-zm1bd
@Roizel-zm1bd 4 года назад
@@batfist6595 Ваш интелект слишком низок для заклинания "Конструктор копирования".
@ivanliaz
@ivanliaz 8 месяцев назад
@@batfist6595 🤣
@Isturfore
@Isturfore 5 месяцев назад
как успехи
@shirker3972
@shirker3972 3 месяца назад
@@Isturforeкак успехи
@sov.harlem934
@sov.harlem934 4 года назад
Понял с первого раза, новичков может сильно спутать пример применения Кк. Вот, кто сразу не понял, постарался вычленить суть: Конструктор копирования - конструктор, реализуемый по умолчанию, и вызываемый при копировании объекта класса(передача параметром переменной типа класс). Его особенность в том, что он делает абсолютно идентичную копию объекта побитово. Это может создать проблему в том случае, когда в описании класса мы реализуем динамический массив. В таком случае, при копировании экземпляра класса, динамический массив тоже скопируется, а также и адрес его указателя. Иначе говоря, два указателя будут хранить один и тотже адрес, и когда мы попытаемся реализовать оператор delete[] в деструкторе, он попытается дважды очистить одно и тоже место в оперативной памяти, что и вызовет ошибку. Синтаксис: class Human { public: Human(const Human &other) //передача параметром объекта типа класс, разумеется, по ссылке { } };
@YanganiV
@YanganiV 2 года назад
Спасибо! Теперь я понимаю что к чему.
@arsIsv
@arsIsv 2 года назад
То есть по факту КК нужен для выборочного копирования, либо аккуратного копирования если есть указатели?
@gok4260
@gok4260 Год назад
что такое кк
@isolaneed2445
@isolaneed2445 Год назад
​@@gok4260, конструктор копирования
@armanmanukyan1970
@armanmanukyan1970 5 лет назад
Выскажусь по поводу всего курса. Канал - шикарный. Подача материала - просто о сложном.Без воды, все по делу.Хотелось бы, в Вашем изложении, разобраться с конструкторами переноса и, в целом, с "move semantics".Спасибо за Ваш труд.
@yanvolkovich1414
@yanvolkovich1414 5 лет назад
спасибо тебе хороший и умный человек за твои уроки, если бы не ты, не знаю как бы в этом всем разбирался, комменты никогда не пишу, но уроки настолько хорошие, что нельзя не поблагодарить, здоровья тебе и твоим близким!
@РоманВасин-ю1р
@РоманВасин-ю1р 4 года назад
После первого просмотра понял что тема совсем непростая, пришлось откатится назад к уроку по копированию данных из массива в массив. Хотелось бы больше практических занятий по данным урокам, это как пожелание. . Ещё раз спасибо за уроки.
@yegorpo2043
@yegorpo2043 7 лет назад
Спасибо за проделанную работу
@aleksmall7449
@aleksmall7449 4 года назад
Самое сложное в программировании - это понять нахй это может пригодиться, так освоить было бы легче) Но определенно это лучшие лекции, вам в университете преподавать
@Kokurorokuko
@Kokurorokuko 3 года назад
Не совсем согласен. Иногда достаточно поверить преподавателю, что это важно, и лучше это сразу усвоить. Но соглашусь, что с примером, как применять, обычно изучать что-то новое приятнее и легче.
@КириллГусарев-р5х
@КириллГусарев-р5х 2 года назад
@@Kokurorokuko преподавателям программирования доверять нельзя. Многие из них ничего не понимают.
@Isturfore
@Isturfore 5 месяцев назад
как успехи
@zvoni03
@zvoni03 5 лет назад
наверное где-то с 22ой минуты потерял связь) спасибо за урок) на вас держится весь ютуб, благодаря вам он не помойка
@LenTos1337
@LenTos1337 6 лет назад
Спасибо вам большое за урок, как всегда. Очень сложная тема, но вы как всегда всё детально объяснили, и я даже умудрился всё понять! Ещё раз, огромнейшее вам спасибо за труд
@MosqRap
@MosqRap 5 лет назад
Помню смотрел твои видосы, когда у тебя еще были лишь сотни просмотров) Вот сейчас пересматриваю, т.к. через месяц гос. экзамен, и нужно всё повторить) Спасибо за твой труд!
@Isturfore
@Isturfore 5 месяцев назад
как успехи
@yuriynesterenko9280
@yuriynesterenko9280 6 лет назад
Спасибо за труды!) Довольно сложная тема в С++, но без нее никак!
@Isturfore
@Isturfore 5 месяцев назад
как успехи
@ebjikkolu4757
@ebjikkolu4757 6 лет назад
Что происходит,что происходит....Уже не понимаю ,что происходит,как только закончилось процедурное программирование и началось объектно-ориентированное))))
@deltaeptat1546
@deltaeptat1546 4 года назад
Я всё же не понимаю, что тут сложного? Как по мне ОО программирование раз в 100 легче процедурного. Кста, какой результат за 2 года? :)
@Heart_of_the_world_1985
@Heart_of_the_world_1985 3 года назад
Главное не сдаваться и "грызть"! Не получается - ляг отдохни, а потом запускай плуги глубже - по предложению, отдельному слову... Смысл в том, что данный урок аккумулирует в себе знания и терминологию предыдущих уроков. Твои знания еще не достаточно сжаты в "оперативке", чтобы свободно ими оперировать образно-виртуально и ты не успеваешь за логикой подачи информации - лист бумаги, код - рисуй и делай свою "область тьмы" светлой! Сергей - киберхристос - такие знания за какой-то лайк)))
@Kokurorokuko
@Kokurorokuko 3 года назад
@@Heart_of_the_world_1985 "По отдельному слову" реально работает. Когда понимаешь каждое отдельное слово, нетрудно понять смысл предложения. А потом эти предложения вместе собираются во вполне осмысленный текст.
@Isturfore
@Isturfore 5 месяцев назад
как успехи
@igorbologov8452
@igorbologov8452 Год назад
2 года назад начал с ваших уроков, сейчас уже работаю программистом, с тех пор познакомился с Си, Rust, Python. Сейчас снова нужно было начинать писать на с++, возвращаюсь иногда к урокам, чтобы освежить некоторые моменты и понастальгировать:) Спасибо огромное!
@By_B0SS
@By_B0SS Год назад
а как вы учились и потом вот запоминали это все ? может смотрели еще что то кроме этих уроков ? когда учились здесь или вообще как вы осваивали язык когда начинали учиться ?
@igorbologov8452
@igorbologov8452 Год назад
@@By_B0SS начинал с этих уроков, потом переключился на написание шейдеров, помимо этого еще кучу разных видосов смотрел, повторял, что делают ,пытялся сам разобраться. Купил курс в универе по питону, его прошел чисто по приколу. Алгоритмы и с труктуры данных наше все и куча практики. И я всё равно еще лошара, так что да, это нелегко
@SibMetalStarlight
@SibMetalStarlight 6 лет назад
Поставил на паузу на 5:08, пишу. При передаче параметра по значению, внутри функции создаётся локальная копия переменной (того типа, который указан в списке принимаемых параметров). Из памяти - честно, как и просили :) Сегодня сложный, но достаточно хорошо разжеванный урок. Спасибо за работу!
@Евгений-ф9я3о
@Евгений-ф9я3о 6 лет назад
Ничего не понял. Буду пересматривать.
@vladivchenko873
@vladivchenko873 4 года назад
VSЁ мне понадобилось пересмотреть 3-4 раза чтобы что-то понять)
@lacklacktriplehack4174
@lacklacktriplehack4174 4 года назад
я конечно не гений и никогда себя таковым не считал но чего сложного то? перед просмотром ролика аж на пол часа решил глянуть комменты мол "ёмана щито происходит" подумал блин походу будет сложно посмотрел на одном дыхании и вообще не выкупил где же cyko это сложно то?
@Евгений-ф9я3о
@Евгений-ф9я3о 4 года назад
@@lacklacktriplehack4174 ну молодец, что еще скажешь то тебе))
@Evgeny..
@Evgeny.. 4 года назад
Посмотрел 2 раза и не до конца понял)
@Никита-с9г
@Никита-с9г 6 месяцев назад
​@@lacklacktriplehack4174держи в курсе. Если что ты остался таким же долбоебом даже поняв этот ролик
@bookuha
@bookuha 3 года назад
Спасибо большое! Зашло на ура) хоть и появлялись сомнения о выборе карьеры и мысли о тщетности бытия, но к середине урока всё просто мигом прояснилось
@SimpleCodeIT
@SimpleCodeIT 7 лет назад
#конструкторкопирования #ООП #SimpleCode #урокипрограммировани
@iouribalachov2108
@iouribalachov2108 3 года назад
Долго держался, но вынужден признать - преп и его уроки гениальны!!! Другим далеко в объяснении подобных сложных вещей!!! Благодарю, и успехов и процветания !!!
@dimasavukov6230
@dimasavukov6230 6 лет назад
Сергей! Спасибо Вам за проделанную работу ! Вьехал в тему только наверное с 7 раза . в учебниках рассказывают про конструктор копирования очень размыто. (искал в 5 книжках). Если устроюсь в сфере IT, то свою первую зарплату - отправлю в помощь Вашему каналу !!!!
@Wardriving666
@Wardriving666 4 года назад
Ну как, устроился?
@паносниглайдер
@паносниглайдер 3 года назад
@@Wardriving666 А ведь он до сих пор не ответил
@Wardriving666
@Wardriving666 3 года назад
@@паносниглайдер Я не сомневался что не ответит >:)
@gamepwoandrey
@gamepwoandrey 2 года назад
чел ты как там? устроился или нет?
@geroitruda8157
@geroitruda8157 2 года назад
@@gamepwoandrey , походу так его никто и не взял на работу.
@Константин-б8з8ы
@Константин-б8з8ы 6 лет назад
за неделю 90 видосов просмотрено, спасибо за труд
@Kokurorokuko
@Kokurorokuko 3 года назад
Главное - смотреть вдумчиво. Хорошо, если Вы так и делаете.
@elvinaustin1022
@elvinaustin1022 5 лет назад
Спасибо Серега , за 3 захода все понял досконально, все разложилось в голове по полочкам на третий раз просмотра )). Спасибо еще раз от души. По книги это можно неделю изучать )))
@s4ymyn4me44
@s4ymyn4me44 Год назад
Для тех, кто не понял: в случае, когда мы имеем дело с динамическим массивом (а не просто с какой-нибудь переменной), конструктор копирования по умолчанию копирует поля объектов (неглубоко), т.е. указателю на массив нового объекта присвоится адрес массива скопированного объекта, а фактически мы будем иметь один и тот же массив. В таком случае у нас после выхода из области видимости функции будет вызываться деструктор для обоих объектов, но очищать память они , что приведет к ошибке. Чтобы этого избежать, нам нужно написать конструктор копирования (глубокого) такой, что копироваться будет не указатель на один и тот же массив, а создаваться новый массив со скопированными из него элементами, тогда деструктор скопированного объекта будет удалять "свой" массив.
@ДашаКолпакова-й4ш
@ДашаКолпакова-й4ш 9 месяцев назад
.
@Никита-с9г
@Никита-с9г 6 месяцев назад
Конч, ты не умеешь объяснять, куда ты лезешь. Поля, глубокого, неглубокого- все термины впихнул, чтоб усложнить. Иди пиши свой говнокод лучше
@Bagasl
@Bagasl 5 лет назад
Автор, это лучший курс русском ютубе по программированию в принципе, даже если рассматривать другие языки. Огромное тебе спасибо за то, что ты объясняешь всё, что под "капотом" происходит. Именно то, что я искал. Можешь посоветовать какие нибудь книги, чтобы лучше понять процессы, которые происходят на низком уровне, вроде работы памяти, garbage colector'a и тд. Не именно в плюсах, а вообще в целом при программировании
@АртёмГуртиков-х9ч
@АртёмГуртиков-х9ч 3 года назад
Пусть С пятого раза, но я все понял !!! Терпение и труд все перетрут ... спасибо Сергей за ваш труд!
@rajinthunderkeg5005
@rajinthunderkeg5005 6 лет назад
Огромное спасибо за столь качественный материал, Сергей! С первого раза не зашло, только после нескольких просмотров мой разум прозрел и я понял, что здесь к чему :) Главное - долбить в одну точку и не останавливаться и тогда точно всё получится!)
@Isturfore
@Isturfore 5 месяцев назад
как успехи
@gritsienkooleg3447
@gritsienkooleg3447 5 лет назад
Спасибо огромное за ваши видео, приятно, когда не упускают ни одного момента и досконально объясняют, запоминается лучше, понятно всЁ!
@Isturfore
@Isturfore 5 месяцев назад
как успехи
@osinandrey73
@osinandrey73 5 лет назад
Из выше сказанных уроков все было относительно понятно, при написании кода. По этот урок!!! Суть понятна, написать такое копирование сложно. Буду пересматривать. Спасибо Сергею за такие уроки.
@disgust9862
@disgust9862 4 года назад
четвёртый раз пересматриваю, спасибо за труды
@woodlandfantomas2044
@woodlandfantomas2044 3 года назад
Отличное изложение. Пользуюсь Вашими уроками как справочником, когда нужно восстановить то, что забыл.
@bodamat
@bodamat 4 года назад
Спасибо большое! Урок хоч очень длинний, но очень важний. Я много чего понял. Спасибо еще раз!
@qIKraytonIp
@qIKraytonIp 5 лет назад
2дня сидел учил, пересматривал , но в итоге понял , спасибо!
@kabanenko5319
@kabanenko5319 3 года назад
Спасибо большое, очень понятно все объяснил. После твоих уроков так и хочется придумать себе задачку по теме и решить ее.
@able_channel4811
@able_channel4811 2 года назад
Дядя я тебя обожаю. Оооооочень помог. Спасибо огромное. Лучше курса на ютубе чем ваша работа - нет
@jane5082
@jane5082 8 месяцев назад
Спасибо, очень понятный разбор!!
@СергейПетров-б1ф
@СергейПетров-б1ф 4 года назад
Зашел спустя полгода после первого просмотра данного видео, теперь все понятно, спасибо, Сергей!
@sergey_savinov
@sergey_savinov 8 месяцев назад
Февраль 2024, очень понятно и приятно изучать плюсы по вашим видео. Некторые моменты очень удивительны после питона:)
@nameundef8076
@nameundef8076 4 года назад
Очень толково объяснено. Тем, кому сложно - посоветую изучить работу с указателями, в рамках того же языка Си.
@WHOAMI-oh3if
@WHOAMI-oh3if 5 лет назад
Очень хорошо рассказано, если вам не понятно, то значит вы что-то упустили в предыдущих уроках или не достаточно практики в плане выделения динамической памяти или в понимании создания дубликатов в функциях при передачи параметров по значению
@BobTheBuilder_2334
@BobTheBuilder_2334 6 лет назад
ох как тяжко заходило)
@Kokurorokuko
@Kokurorokuko 3 года назад
@@fodermoll7128 сеньор-помидор
@kaliban12
@kaliban12 Год назад
Работаю в студио 2022 и на этапе, когда создаем функцию Foo2(), у меня нет второго вызова деструктора, синтаксис абсолютно одинаковый, но при этом. при прохождении return temp; он не заходит в деструктор еще раз.
@sae9016
@sae9016 11 месяцев назад
Скорей всего просто обнова и тут работает по другому у меня тоже самое . просто до этого в кометах и про strcat_s писали
@ДенисКлаузов-в4и
@ДенисКлаузов-в4и 7 месяцев назад
такая же проблема. Надо посмотреть при создании динамического массива будет ли ошибку показывать или нет.
@Isturfore
@Isturfore 5 месяцев назад
+ также
@МихаилКрылов-п5ч
@МихаилКрылов-п5ч 3 года назад
Ну сложно для восприятия, но после второго просмотра стало всё ясно. Спасибо большое за урок
@archiechellaut9483
@archiechellaut9483 3 года назад
Большое спасибо вам за урок и прекрасное пояснение, Сергей!
@ИльяЯкобсон-ю7ж
@ИльяЯкобсон-ю7ж 4 года назад
Это гениально. Настолько детальный сложный разбор и ты реально смог это объяснить. Спасибо большое! Было сложно. Прервался на третьей итерации просмотра=)
@ton12047
@ton12047 Год назад
Ну что сказать? Посмотрел первый раз - кое-что стало ясно, до далеко не все. Очевидно надо еще раз или два посмотреть. Тема действительно не очень простая. Очень очень жаль что нет заданий которые могли бы хоть как-то закрепить материал. Пытаюсь вспомнить что, и зачем я изучал в районе 40-х или 50-х уроков и ничего толком не помню. Хотя бы 100-200 задачек бы на этот курс , был бы от курса совсем другой прок. Ну огромнейшая благодарность автору! Зачем мне все эти знания я и сам не знаю, но учиться по этому курсу-большое удовольствие.
@Empty_line
@Empty_line Год назад
16:03 Что это значит😶?
@Nikitunr2013
@Nikitunr2013 4 года назад
Фух. С 4-го раза понял. Оказывается все было очень просто... Спасибо за годный видос, однозначно лайк!) Если кому поможет - this для каждого индивидуален, так как в параметре функции мы вводим новую переменную как ссылку, то имеем право пользоваться данными класса, который был отправлен в параметр функции...
@svitlanashpilova6407
@svitlanashpilova6407 3 года назад
Действительно тяжелый урок. Благодарю.
@raztarg4adchadov914
@raztarg4adchadov914 2 года назад
Здравия всем родам!!! Ёлы палы. 2 дня разбирал этот урок. Мудрость приходит с годами, но в основном годы приходят одни))
@SmileTop8067
@SmileTop8067 6 лет назад
спасибо за подобного рода уроки)
@Александр-в3ъ7ш
@Александр-в3ъ7ш 7 лет назад
Сергей, посоветуйте литература по С++, по каким книгам Вы изучали язык? А еще можете рассказать как пользоваться отладчиком? я вижу, что справа появляется доп. панель (загрузка ЦП и т.д.)
@Альтернативноемнение-б7э
Чувак, у него есть отдельное видео про отладчик.
@alexanderwagner8199
@alexanderwagner8199 11 месяцев назад
Урок в 30 минут пролетел как за 5. Очень круто.
@Empty_line
@Empty_line 8 месяцев назад
28:15 Почему в указателе data ничего нету если только что там было значение 10?
@panschindler9370
@panschindler9370 4 года назад
С первого раза понял на пол шишечки, а со второго на все 100!! Спасибо, люблю вас, Сергей))
@wasony.126
@wasony.126 4 года назад
И что ты понял поделись
@androidpasha
@androidpasha 3 года назад
5:08 Честно пишу ответ что происходит: выделяется память в которую копируется значение переменной и с новой переменной работает класс(функция)
@АртемБатьков-м6ю
@АртемБатьков-м6ю 2 года назад
5:07 -когда передается по значению, это значит в теле функции создается локальная переменная, с которой мы делаем что захотим, но при выходе из тела функции, эта переменная будет удалена. Тогда в main мы не увидим изменений у той переменной, которую передали в функцию.
@dekstor5657
@dekstor5657 6 лет назад
Непростой урок, но ближе к середине я понял к чему это конструктор. Спасибо за урок!
@alexdi5423
@alexdi5423 6 лет назад
Немного пояснений. Конструктор копирования - это тот же самый обыкновенный конструктор, который срабатывает при создании обьекта. Но благодаря перегрузке срабатывает код конструктора который принимает в качестве параметра объект.
@aleksandrdrobyshev7623
@aleksandrdrobyshev7623 4 года назад
Жаль, что нельзя помечать коментарии как-то, типа "ценный", чтоб они вылезали поверх всего мусора, что тут написали.
@wasony.126
@wasony.126 4 года назад
👏👏👏👌
@flepjack
@flepjack 3 года назад
Спасибо за урок, каждый раз смотрю до тех пор пока не станет тяжело соображать, в этот раз остановился на этом уроке)) завтра с него и дальше) огромная благодарность, это лучший курс в рутубе!
@rearden3820
@rearden3820 5 лет назад
Раза со второго все понял, спасибо за урок!
@seezentzort
@seezentzort 4 года назад
самый лучший канал!
@rostyslavklyba1746
@rostyslavklyba1746 5 лет назад
Спасибо Вам Сергей, хорошие уроки. Этот урок довольно сложный, нужно смотреть несколько раз.
@tapirskiy
@tapirskiy 5 лет назад
создается новая переменная внутри функции и ей присваивается значение, в итоге исходная переменная не меняется, вроде так)
@ФишкиОтАйтишника
@ФишкиОтАйтишника 5 месяцев назад
Спасибо огромное, ждём новых уроков!
@viktort9326
@viktort9326 4 года назад
28:31 Для чего тут мы используем this->date=new int [other.Size] ; ?? Нельзя ли просто написать this->data= new int [ this->Size] ? Или this->data= new int [ Size] ? Ведь мы уже выше в коде скопировали this->Size = other.Size
@ilya4068
@ilya4068 2 года назад
можно , просто он это писал раньше чем this->Size->other.Size
@Xenobolus
@Xenobolus 4 года назад
Урок хороший. Печально, что в этот раз нет исходного кода.
@artembystrov1113
@artembystrov1113 3 года назад
Довольно легко если все уроки смотреть, спасибо за ролик!)
@rayansamerkhanov5438
@rayansamerkhanov5438 3 года назад
Спасибо, ты просто бог по объяснению. Все очень понятно и круто!
@seastraus1
@seastraus1 4 года назад
При передаче объекта класса MyClass в функцию Foo по значению в ней будет создан еще один такой же объект, но с одним отличием вместо данных он будет содержать указатели на данные первого объекта.Таким образом на момент работы функции Foo мы будем иметь два объекта которые указывают на одни и те же данные. С окончанием работы функции Foo отработаем деструктор локального (второго) объекта уничтожив как сам объект, так и данные на которые он ссылается. Далее с окончанием работы функции main() будет вызван деструктор первого объекта и при попытке уничтожить не существующие данные по уже битому к тому времени указателю на данные мы получим исключительную ситуацию (вылет).
@rizabekutegenov5423
@rizabekutegenov5423 5 лет назад
Спасибо вам огромное!
@youjustillusion536
@youjustillusion536 4 года назад
Создается копия той же переменной, которую мы передаем) Класс!
@romanbondaruk9682
@romanbondaruk9682 3 года назад
В зависимости от параматра функция или метода , функция либо копирует аргумент и уже тело функции работает с копией аргумента, или же если параметр єто указатель, тогда функция работает непосредственно с самим обьектом.
@iamabbadon9421
@iamabbadon9421 6 лет назад
При передаче по значению значение переменной из другой функции будет лишь передано свежесозданной функции исключая таким образом изменение данных в оригинальной переменной.
@daps9516
@daps9516 Год назад
Понял все. Однако хочется узнать как располагаются в памяти обьекты класса и их поля, методы.
@Empty_line
@Empty_line Год назад
16:03 Что это значит😶?
@sleepyNovember_project
@sleepyNovember_project 9 месяцев назад
Тоже интересно
@circularka9513
@circularka9513 5 лет назад
Спасибо огромное. Даже не знаю, как бы я понял эту тему без вашего объяснения
@ИванКозловский-ш9н
привет из 2023, спасибо большое за уроки!
@Empty_line
@Empty_line Год назад
16:03 Что это значит😶?
@russiantutorials4763
@russiantutorials4763 Год назад
Передача параметра по значению это когда создается копия этого значения, передача параметра по указателю это когда передается указатель (адрес памяти) и этот указатель может указывать на какое-то значение, а передача параметра по ссылке, это так же передача параметра по адресу памяти, который ссылается на какое-то значение (массив, переменную), но в отличие от указателя, не требуется операция разыменования. И еще очень важный момент отличия ссылки и указателя: указатель это самостоятельный объект, который может быть инициализирован без явного указания того, что в нем лежит. Ссылка же, наоборот, не самостоятельный объект, который не может быть инициализирован без явного указания того, что в нем лежит, однако может быть инициализирован, если туда положить какую-то переменную.
@bulba1995
@bulba1995 2 года назад
Поставил на паузу и понял что я ошибся после просмотра 34 видео . Попутал все . Но спасибо постараемся запомнить. Уверенн что еще буду пересматривать много раз ваши видео .
@ollymolly3696
@ollymolly3696 5 лет назад
Отличный урок! Спасибо Вам! У меня вопрос. В конструктор копирования снесла ключевое слово this и получила: Size = other.Size; data = new int[other.Size]; for (int i = 0; i < other.Size; i++) { data[i] = other.data[i]; } Код отработал также, как и с this. Т.е. можно и пускать это ключевое слово?
@panda9303
@panda9303 5 лет назад
Да, оно здесь не обязательно. В основном this используется в полиморфизме, это будет объясняться далее.
@sultanzholov
@sultanzholov 2 года назад
у меня с this даже не работает, сделал также, эти this в этом уроке лишние, и путают голову
@Роман-т5е6с
@Роман-т5е6с 2 года назад
@@sultanzholov Значит ты что-то упустил
@ilya4068
@ilya4068 2 года назад
получается, что после строки this->Size = other.Size; дальше можно вместо other.Size писать Size (при указании размера массива и при указании кол-ва итераций цикла)
@goddamright
@goddamright 4 года назад
Вроде суть понял, но пару раз пересматривать надо.
@РоманОрлов-у4ю
@РоманОрлов-у4ю 6 лет назад
Спасибо Вам большое за Ваш огромный труд!
@parampampam4477
@parampampam4477 5 лет назад
Большое спасибо за уроки
@Isturfore
@Isturfore 5 месяцев назад
Со 2-го раза понял, тут ничего сложного, просто надо как голубь в монитор втыкать и переваривать каждое слово этого величайшего человека
@sleepyNovember_project
@sleepyNovember_project 5 месяцев назад
факты
@lexus952610
@lexus952610 3 года назад
На третий раз понял спасибо)+ отдохну перед третьим просмотром)
@АлександрЛитвинюк-х2ы
Спасибо за знания !
@dtactical
@dtactical 3 года назад
Как же скрипят мозги, еле осилил. Огромнейшая благодарность за урок, Сергей!
@НиколайПокровский-р6в
Огромное спасибо!)
@ИгорьСамонов-ж3д
5:00 Переменная value типа Myclass будет видна только в области видимости void Foo и не повлияет на другие переменные. Upd: не совсем верно написал) - на эту переменную value никак нельзя будет повлиять из другого места программы, кроме как в этой функции Foo.
@nightgames3158
@nightgames3158 3 года назад
Вроде и понял,а вроде и нет.Мой мозг после этого сделал сальтуху.Ёщё пару раз посмотрю и пойму:)СПАСИБО ЗА УРОК)))
Далее
Когда Долго В Рейсе)))
00:16
Просмотров 178 тыс.
КАК УСТРОЕН TCP/IP?
31:32
Просмотров 196 тыс.