Как я неправильно C++ учил
Привет, Я Дима мне 26 и я программист.
И мне есть, что рассказать)
Сегодня я расскажу о том, как я изучал C++ о том, какие ошибки я совершил и по каким причинам. И как Вам их в свою очередь избежать.
Задавайте любые интересующие вас вопросы в чате и в комментариях, так данное видео будет наиболее полезным.
Twitch: / ambushedraccoontv
Telegram: t.me/AmbushedRaccoon
Поддержать канал: www.donationalerts.com/r/ambu...
Пікірлер: 270
Работаю С++ программистом какое-то время. И смотря видео на ютюбе по программированию - плавно переставал верить что здесь есть хоть что-то адекватное. И случайно наткнулся на тебя, и был очень приятно удивлён. Спасибо за видео)
@ambushedraccoon6408
2 жыл бұрын
Спасибо за отзыв!)
@soneroen4579
Жыл бұрын
А как же simplecode?
@loplop9527
11 ай бұрын
@@ambushedraccoon6408 , а как же Roman Suckutin по C#?
@TheSancheriuS
10 ай бұрын
Привет) скажи, со своей колоколни, стоит учить с++, как первый язык? Два месяца учу и постоянно слышу, зачем ты выбрал с++, работу хрен найдёшь и тд...
@user-bh3mm6ck4q
10 ай бұрын
@@loplop9527из всех видео, что я видел по c#, лучшие были с канала DevJungles, по-моему такое название, но там контент для людей, которые уже неплохо знают язык
Господи, какие же у тебя классные видео, как хорошо что я наткнулся на твой канал, никогда не думал, что двухчасовые стримы будут для меня пролетать так быстро, но твои я смотрю с удовольствием, мало того они ещё очень информативны. Спасибо большое!!) Жду следующего стрима :)
@ambushedraccoon6408
3 жыл бұрын
Большое спасибо)
@basturmator1815
2 жыл бұрын
Буквально пару дней назад нашёл этот канал, очень интересно и лампово, спасибо! Начинаю изучать C++.
@andreygurenkoff2721
Жыл бұрын
Пытаюсь посмотреть это видео, но когда слышу матюк сразу интерес пропадает. Нет, сам бывает ругаюсь по нервняку, но в данной спокойной атмосфере использование зачем?? Какое-то ощущение несерьзности возникает, школизм.
Шикарный стрим.) Очень лампово🫠 и очень много полезных советов для новичков. Продолжай в этом формате, пожалуйста.👍👍👍
Красава. Базар только по делу ведешь. Лайк!
Так приятно! Прям бальзам битнера на нейроны мозга уже опухшие от изучения основ С++ и сейчас STL и библиотеки SFML =) Спасибо тебе за стрим, темы подняты очень полезные для таких как я, начинающих разработчиков, особенно в мире gamedev разработки, где вначале на всех курсах, стримах, онлайн занятиях впихивают не то, что реально понадобиться!
@ambushedraccoon6408
2 ай бұрын
Спасибо за хороший отзыв!)
Видео топовое, спасибо тебе
Только и думал о том, когда же ты перестанешь качаться и "кричать" в микрофон :-). Не смог досмотреть, хотя наверняка было бы полезно.
Спасибо за уроки, сам работаю на qt, хочу разобраться более глубоко в плюсах!
@ambushedraccoon6408
2 жыл бұрын
Не за что) Правильное решение.
Воу круто. Очень приятно слушать, много что переосмыслил (к примеру, разница между классами и структурами в с++. В вузе нам про это почти не рассказывали, а на вопрос в чем различие давали какой-то невнятный ответ)
@ambushedraccoon6408
3 жыл бұрын
Спасибо. Рад слышать. Странно конечно ведь различия номинальные и стракт нужен только для обратной совместимости с C++
@user-dh2gs1wj1h
2 жыл бұрын
На какой минуте он про это говорит то, не могу эту воду слушать
2:33:39 такое лишь на работе показввал сотрудник. Я не совсем понял как и зачем это работает. Но теперь ясно о чем речь. Спасибо большое, будем юзать)
@ambushedraccoon6408
2 жыл бұрын
Ну это очень частный случай, но я рад, что объяснил)
Дуже крутий контент. Сподіваюсь, твій канал стрімко піде вгору. Хотілось би бачити твої відео ще 3 роки тому, коли починав працювати з С++.
@ambushedraccoon6408
Жыл бұрын
Спасибо за комментарий. 3 года назад видео были гораздо хуже))
Стоит ли изучать вычислительные методы? Например метод гауса, Ньютона и т.д. Будет ли плюсом написание подобных методов своей реализацией для резюме? И вообще, как часто подобное используют?
@ambushedraccoon6408
2 жыл бұрын
Зависит от области, в которую вы развиваетесь. Например в геймдеве часто требуется математика, работа с матрицами и так далее. Методы довольно базовые, поэтому в данной ситуации мой ответ - да.
@TurboGamasek228
Ай бұрын
а че там изучать то, даже стыдно такое в резюме писать
Посмотрел видео. В частности про образование. Оказалось что я только move-семантику не проходил как надо из всего вышесказанного. Отмечу что в универе у меня был исключительно С/C++, и там не рассказывали только про умные указатели, мув-семантику, ламбда-функции и потоки и прочие с++11-фишки. А всё потом у что учился я в универе, примерно в то время, когда ещё 11-й стандарт даже не вышел. В остальном довольно вменяемо.
насторожил момент на 1:10, где вы используете remove_if, но не используйте erase, ведь remove_if возвращает итератор
привет! огромное спасибо за твой контент! я прогаю год (с/с++) и я сейчас увидел столько фишечек от тебя, что просто охуеть. а ещё есть видосы по бусту и про собесы с 2:05:00 я в голос конечно)) очень порадовал момент, такая жиза ахаха
Привет! Можешь пожалуйста дать советы по изучению C++, какие книги почитать, может задачки на каком-нибудь ресурсе по решать для закрепления материала, ибо уже сколько всего перепробовал немогу найти то что эффективно работает и помогает в достижении поставленной цели а именно изучение C++. Проходил буквально 3-4 часа назад собес, и к стати попалась задачка по перевороту строки которую ты на стриме по вопросах на тему "Вопросы на собеседовании по С++" делал. И ещё сказали сделать через char* str это конечно треш немного, сразу вспомнил словечко "Бывший преподаватель Универа Быгуир, я в тот момент орнул конечно))" Но про ключевое слово const and static ни слова. Тут так к слову скажу: Я так понял что меня не возьмут ибо на довольно простых вещах спотыкался. В общем в ожидании фитбека. Контент просто агонь. И подача у тебя отличного преподавателя. Может курс по C++ сделаешь? Для начинающих так и для продвинутых, думаю ребята поддержат, чтобы реализовать данное мероприятие. В общем за ответ спасибо большое за ранее!
@ambushedraccoon6408
2 жыл бұрын
Привет! Задачки могу посоветовать. Сайт Leetcode есть с довольно неплохими задачами. У меня даже есть стримы с задачами с этого сайта. По поводу книг мне посоветовать что-то сложно, сам никогда книги в духе "философия C++" не читал. Да и мало толку от них, если практики нет, материал вообще не усваивается. Могу посоветовать в будущем ознакомиться с "Эффективный и современный С++" - Скотт Мейерс. Но тут тоже надо примеры кода, приведенные в книге, проверять, потому что есть несовпадения результатов. Еще рекомендую обратить внимание на данную роадмапу по C++ github.com/salmer/CppDeveloperRoadmap Жаль по поводу собеседования, но это ничего не страшного, неудачных собеседований еще миллион будет, это норма. “Контент просто агонь” - большое спасибо. “Может курс по C++ сделаешь? ” - может быть в будущем.
Вопрос , я как начинающий изучать,должен же знать как работает "велосипед" из algoritm? И есть ли смысл писать его самому или можно сразу брать готовое?
@ambushedraccoon6408
2 жыл бұрын
Привет. очень тонкий на самом деле момент. Я бы рекомендовал делать и то и то. То есть не надо впадать в крайности и прямо все все все делать самому. Но пару сортировок разобрать стоит. Пару структур данных (стэк, очередь, динамический массив, списки) написать стоит. Про остальные достаточно понимать то, как они работаю и так далее, чтоб знать когда и где применять. А про готовое. Конечно надо использовать готовое, сейчас не 80-е и индустрия такова, что лучше не тот, кто сам напишет велосипед, а тот, кто быстрее и эффективнее использует уже готовое.
@markellich2319
2 жыл бұрын
@@ambushedraccoon6408 спасибо за ответ!
А какой фреймворк посовтуете изучать если stl уже знаешь, но так чтобы попроще чем qt
@uipo1122
7 ай бұрын
посоветую изучить как программировать
При использовании remove_if у тебя не затрутся мусорные элементы в конце вектора! Нужно написать vec.erase(remove_if(vec.begin(), vec.end(), предикат), vec.end());
@ambushedraccoon6408
2 жыл бұрын
Да, знаю. Видимо на трансляции упустил.
блин после изучения С Вы не знали как работает include? это же легко проверяется ключом при компиляции почему EL код не настоящий бинарный код? даже текстовый файл это бинарный код))
Ну что посмотрю пожалуй 3 часа стрима :)
1:24:43 что на счет многопоточности? Просто про это мало кто говрит, скорее всего в единичных случаях используется
Не качайтесь назад вперёд, громкость скачет.
Если убрать с аудиодорожки причмокивания, получился бы отличный подкаст😅
Кстати, подписался на канал)
Многа воды вредно пить - быстро ожиреешь 😁Вода увеличивает расстояние между катализаторами 🤩
@syogun544
7 күн бұрын
Врачи с тобой не согласятся,но ты дальше верь в свои высеры
Здравствуй, стоит ли читать Герберт Шилдт : С++ базовый курс вот эту книгу?
@ambushedraccoon6408
2 жыл бұрын
Здравствуйте. Не знаю, не читал. Если вас интересует стартовый уровень и Вам эта книга нравится, то да.
@user-zp7it6qo6e
2 жыл бұрын
@@ambushedraccoon6408 Спасибо за быстрый ответ.
@user-qp5mu5tc8n
7 ай бұрын
Книга уже старенькая. Что-нибудь поновее лучше. Может, Майкла Доусена?
@user-ws1ud4op9i
6 ай бұрын
@@user-qp5mu5tc8n новчку хотя бы базовые вещи выучить, которые все еще актуальны. Тем более новую книгу с хорошей репутацией найти еще надо
Есть какой то плагин, которьій "как бьі" и "и так далее" дропити или мьютит? Єтот винигрет невозможно слушать...
Не пойму о чем вы на 28:20 говорите. То где будет располагаться объект структуры или класса не обозначен тем что это класс или структура. Стек используется для передачи параметров в функции и хранения локальных переменных функции. Управляемая куча уже используется оператором new.
@ambushedraccoon6408
2 жыл бұрын
Речь про C# где class - тип ссылка, struct - тип значение.
дайте таймкоды прошу умоляю
привет, а в каком вузе ты учился?
@ambushedraccoon6408
Жыл бұрын
Привет, БГУИР. На компьютерных системах и сетях.
может сделаете курсы по с++ ?
@6eJlblu_KpoJluk
10 ай бұрын
Столяров точка инфо, лучший курс на 3 тома по 700 страниц, держу вкурсе
Я так и знал, что ты напишешь библиотеку algorithm)) Потому что у меня сейчас такие же поблемы)
@ambushedraccoon6408
2 жыл бұрын
Тоже не хватает таймкода:) Сложно вспомнить, о чем речь.
А я пытался учить DirectX до изучения Си/Си++ одновременно в процессе пытаясь эти ЯП изучать. Отвал башки :)
@ambushedraccoon6408
3 жыл бұрын
Классический случай. Как изучать Unity, не имея опыта с C#. Как браться за Qt, не поработав с плюсами. Все там были)
@aleksanderaksenov1363
Жыл бұрын
Лучге изучать основы 3D графики без конкретногл API тем более релизация API скрыта
учу плюсы. в своей программе столкнулся с проблемой копирования при добовлении объекта в контейнер. но решил проблему созданием контейнера указателей на объекты. чем данный вариант хуже/лучше варианта с move симантикой?
@aleksanderaksenov1363
Жыл бұрын
Хороший вопрос,а теперь попробуй оцени алгоритмическую сложность и расположение в памяти обьектов и их время обращения по указателям
@goczt
Жыл бұрын
Обращение к чему-либо через указатель заведомо медленнее чем напрямую. Тут и необходимость в лишней операции, и возможен случай, когда у тебя элементы одного вектора находятся в разных страницах памяти, тогда ОС придётся их подгружать. Чтобы объект не копировался в контейнер при добавлении, его нужно либо туда передавать через std::move, тогда используется более быстрый мув конструктор (если он есть), либо создавать его сразу "на месте" при помощи метода контейнера emplace
@goczt
Жыл бұрын
Но надо всё равно понимать, что move конструктор это тоже копирование, которое не в 100% случаев быстрее. Например структура из 4 интов и так и так скопируется одинаково. А при использовании emplace копироваться будут аргументы конструктора, так что для той же структуры из 4 интов, скопируются все 4 инта, если компилятор не соптимизирует.
@princessmary5556
Жыл бұрын
@@goczt Надо понимать, что "мув" - это не "тоже копирование".
@goczt
Жыл бұрын
@@princessmary5556 Сам std::move ничего не копирует, но механизм создании копии из rvalue ссылки вообще ничем не отличается от создании копии из lvalue ссылки. Разница только в том, что в случае rvalue ссылки *программист* понимает, что объект временный и у него можно деструктивно "отобрать" состояние в угоду производительности. Вы, видимо, дальше 11 слов не прочитали.
Я 25 лет работаю на С++. И очень рад что меня учили люди, которые писали код на ассемблере , а не приводили примеров что include это как import в java, потому что и java никакой тогда не было.
@s.g.7213
Жыл бұрын
@You Tube ага java то уж точно к с++ имеет отношение. Она написана на нем .
@s.g.7213
Жыл бұрын
@You Tube c++ написан на с. С на asm. Надо идти снизу вверх. А от ходьбы сверху вниз ничего хорошего не будет, если C++ изучать например сравнивая c Python. Принять java после C++, не составляет проблем, а вот осознать С++ после java, видимо ,могут не все. Я имел дело с отделом разработки java , который перевели к нам в С++ после закрытия направления, со словами "Да там всё тоже самое", кто то в итоге научился , кого то выгнали , но то что они по началу написали.... лучше бы я сам всё написал.
@s.g.7213
Жыл бұрын
@You Tube "Студенты изучавшие бейсик подверглись.... " Впрочем, от ошибок молодости никто не застрахован, особенно что обычно не было того кто может наставить на путь истинный. Я начинал с БП и даже на олимпиады ходил с ним.
@s.g.7213
Жыл бұрын
@You Tube Суть в том что эти люди, которые меня учили , писали код на ассемблере, но естественно ассемблер был не единственным языком в их арсенале, и С и С++ они тоже знали прекрасно. При этом прямо на доске могли прикинуть как будет выглядеть на ассемблере та или иная простенькая функция написанная на С. А после этого даже перевести её в машинные коды.
@s.g.7213
Жыл бұрын
@You Tube При том что С++ это не строго ООП. Можно писать на С++ и вообще не использовать ООП в своей программе, и это будет программа на С++ тем не менее.
На счёт копирования , стало открытием. Нвжо будет поправить в своём проекте.
@ambushedraccoon6408
2 жыл бұрын
Сложно мне в стримах ориентироваться без таймкодов) Речь про передачу параметров в функцию?
@user-pl9ek9du8p
2 жыл бұрын
@@ambushedraccoon6408 да, в следующий раз буду писать тайм коды. Я про момент, когда ты показал использование foreach цикла по vector. Удаление erase по одному элементу или просмотр.
@ambushedraccoon6408
2 жыл бұрын
Да. Очень частая ошибка в продакшене.
сначала нужно изучить stl? (надеюсь я правильно написал)
@ambushedraccoon6408
2 жыл бұрын
Да, все правильно. Не обязательно, но, на мой вкус, это наиболее классический и наиболее правильный подход. Даже если посмотреть на стандарты, обновляется язык, обновляется и стандартная библиотека. Можно сказать, что это часть языка, хоть это и не совсем так. Многие фрэймворки дублируют у себя stl или предлагают свои какие-то подходы, но не проблема будет переключится с stl на что-то другое.
24:56 я который учу python, java, c++ и lua паралельно: ну да, конечно, прямо сейчас определю язык на котором хочу писать)
Скажем так
охуенный канал, как меня сюда занесло
@ambushedraccoon6408
3 жыл бұрын
Спасибо) надеюсь не пожалели
Интересно, бывают вообще зумеры без СДВГ, способные концентрироваться на чем-то больше 10сек
@Grigwee
6 ай бұрын
Я
Звук дико гуляет по громкости, клава щёлкает, текст мелкий... ну спасибо хоть музон не врубил...
Про техническую литературу. В некоторой действительно слишком размусоливают, что не очень. А в некоторых одну страницу по 10 минут читать можно, особенно если это что-то математическое. (Ну может не по 10, но достаточно долго точно) Жидкие книги я не читаю, очень сухие нравится больше. Но в основном я читаю в метро, в свободное время очень редко. Может вообще раз в пол года
@ambushedraccoon6408
3 жыл бұрын
Ну у меня главная проблема с литературой в том, что описанные примеры в книге слишком часто расходятся с тем, что произойдет при реальном запуске кода. Ну и да, скучно.
Хороший канал, подписался, но 27:55 :D, котлин - современный язык. С 2019 г официальный язык разработки под Android. С Kotlin multiplatform можно писать и под IOS, web и desktop. Для написания UI есть compose multiplatform (чем-то похож на QML) Всё будет котлин)
@ambushedraccoon6408
Жыл бұрын
Перепутал) Спасибо за отзыв.
Хм... разные понятия сыллки срр и ссылки с# одинаковы. Может с указателями попутал? О.о о.О. И как работа с числами с плавающей точкой различается? И там и там используется стандарт IEEE754 !
Привет! На стриме была просьба пошарить исходник, связанный с мув семантикой. pastebin.com/4Sa57VxB
@nicivanov5135
3 жыл бұрын
Отличный стрим, хорошие темы подняли! Для тестов лучше stdafx.h отключить в настройках проекта. Буду ждать новых интересных тем. Например про битные массивы и как их там по координатам в массиве рассовывать. Иногда это сильно помогает экономить память.
@ambushedraccoon6408
3 жыл бұрын
Большое спасибо! "Для тестов лучше stdafx.h отключить" - спасибо, учту. "Например про битные массивы и как их там по координатам в массиве рассовывать." - не совсем понимаю. Речь про ситуацию, когда нам надо хранить много булов и мы используем числовой массив и работаем с битами, чтобы экономить память?
@nicivanov5135
3 жыл бұрын
@@ambushedraccoon6408 Да и булы тоже. Иногда это используют для базы, чтоб индексировать в одном "char". сразу несколько значений. Иногда таким образом делают прошивки для устройств. Или используют для секюрных целей, кодировки декатировки хеша. Но Вы лучше делайте то, что Вам ближе по работе или по фану. Вы упоминали Юнити и C#. Поучается Вы в геймдеве работаете?
@ambushedraccoon6408
3 жыл бұрын
@@nicivanov5135 Да, последние полтора года. Клиентщик на плюсах. С юнити опыт тоже имеется.
Разве exe не бинарник?
боже это слушать невозможно на фоне, автор постоянно чавкает, плямкает, громко глотает слюну, качается на стуле и из-за этого прыгает громкость звука, пришел послушать про с++ в итоге получаю асмр контент ))))
@dampling2601
2 ай бұрын
Не слушай
@user-nt6ih2ki2b
28 күн бұрын
И чё?
@syogun544
7 күн бұрын
Сделай лучше
2:07:42 самое говняное, когда ты знаешь что вещь работает, но ловишь какой-то баг и сидишь дебажишь это перед зрителем 😄
@ambushedraccoon6408
2 жыл бұрын
Да, это тяжело)
для тех кто ещё не смотрел видео и хочет понять нужно ли тратить своё время на это, то вот момент: 47:48 1:18:27
@fdshdsfdsqq
9 ай бұрын
для тех людей поумнее, кто все же не будет смотреть, предоставляю выжимку из видео: Stl учи Изучи Изучи алгоритмы, если не хочешь писать убогий говнокод. Изучи стандарты c+11,14,17,20 После основ + STL учи Boost и Qt
Исполняемый файл содержит набор ассемблерных команд? 😂 Ну надеюсь за два года ты смог разобраться.
@ambushedraccoon6408
5 ай бұрын
Разобрался)
А зачем комментарий то удалять было?
@ambushedraccoon6408
2 жыл бұрын
Это про C++ сложный язык....? А я и не удалял. Я его видел в уведомлениях частично, а под видео уже не нашёл. Так что повторите, если не затруднит. Я комментарии не удаляю, кроме спама и рекламы.
@ambushedraccoon6408
2 жыл бұрын
Я его до сих пор вижу в уведомлениях, но не могу открыть и дочитать.
@kvoistinov
2 жыл бұрын
@@ambushedraccoon6408 да, он самый. Мой так сказать путь описал) Слова напутствия для изучающих С++, что его изучение должно быть сродни приключению/ исследованию. Иначе можно быстро выгореть, так и не поняв насколько это мощный язык.
Все коментарии прочитал) теперь скачать видео твое с ютуба. и в телефон скинуть, и будем слушать теббяя
28:22 У меня аспирант принимал практики по плюсам, но он писал на C#. И когда увидел у меня struct сказал что это совсем другое, чем class, но я ему быстро обьяснил. Вообще, вуз ужасное место для изучения программирования. На третьем семестре в лекциях на полном серьезе обьясняют что такое цикл for, прям как на информатике в 7 классе
@ambushedraccoon6408
3 жыл бұрын
"struct сказал что это совсем другое" радует, что он знает, что в шарпе это совсем другое) А вообще да. В Вузах очень плохо, просто пытка, у меня этому даже отдельная трансляция посвящена.
тайм коды быы
Хороше видео, а с мув семантикой пример плохой. Не очень понятно, за счет чего обеспечивается прирост (не видно что происходит в стринг). Возможно стоит показать например на примере создания массива из миллиона интов.
@ambushedraccoon6408
3 жыл бұрын
Спасибо. Не уловил, Вам пример не понятен? Или думаете что другим? Если Вам, то копируется значение указателя, а не вся память. Если другим, то да, на примере своего класса с демонстрацией копирования и перемещения больших объемов данных было бы лучше.
@user-pt1db7ry1t
3 жыл бұрын
@@ambushedraccoon6408 Пример лично мне понятен, но я достаточно опытный разработчик (относительно), а у других я полагаю могут быть проблемы. Все-таки когда видишь как один указатель присваивается другому, вместо выделения памяти, все становится проще. А так еще раз вам спасибо за видео, у вас хорошо получается в том плане, что слушать интересно.
Бедняга нервно качается, то оверлодя микрофон, то удаляясь. Сумбурно рассказывает, постоянно отвлекаясь и теряя нить. Пьёт постоянно воду, будто на препаратах. Как он может нормально работать?
Несколько слов в помщь автору. Я вижу 2 основных причины НИЗКОЙ ПОПУОЛЯРНОСТИ КНАНАЛА. ( 1 ) Люди, просматривающие видео, где автор делится опытом в программировании, не расположены на длинный формат по времени. Это характерно для чисто обучающих видео, но ни как для трёпа типа "добрые советы". То есть время слудет урезать и видеоролик не должен быть настолко размазан, разбавлен ответами на левые вопросы. ( 2 ). Автору следует обратить внимание на дикцию. Когда рассказываеш про тонкие неочевидные и сложные вещи, недопустимо это делать итнонацией чуть ли не интимного общения. То есть придыхание, пониженная интонация, глотание окончаний слов и самих слов, изменения высоты тона - это большой минус в таком формате видео. Почему автор это делает - понятно: он находится в русле психологически доверительного, дружеского общения - отсюда, в голосе чувствуется такая интонация дающая некую душевность изложению. Однако нужно учитывать, что большенство подписчиков - не ровня автору. И они пришли не для душевных посиделок, а для получения ниформации. А информацию хочется получать чётко и желательно экономно по времени, не напрягая слух и языковой анализатор в попытках распознать туманную фразу. Вобщем нужен баланс между неформальностью подачи и насыщенностью, чёткостью донесения. Хорошим примеров в этом плане по моему мнению является Немчинов
@apegg9233
Жыл бұрын
это запись стрима, а не видеоролик. Здоровья тебе, Дядя Лёха
Оксимирон вдарился в кодинг.
@ambushedraccoon6408
3 жыл бұрын
Эх, далеко не в первый раз я подобную шутку слышу)
@user-jp4qb6br7k
3 жыл бұрын
@@ambushedraccoon6408 Ладно, прошу прощения, больше не буду. А видео - супер! Спасибо огромное.
Если что Unreal engine не на си и никогда на нем не был. Даже в далеком лохматом 94 году Суини его писал ООПшно с классами, полимформизмом и т.д.
@ambushedraccoon6408
3 жыл бұрын
Буду знать)
Я почему-то всегда думал, что #include связан с библиотеками функций
@ambushedraccoon6408
5 ай бұрын
И с ними тоже. Библиотеки подключены к вашему проекту. Ну вы и вставляете хэдер, чтобы получить доступ к сигнатуре функций.
@8O0Aa.1q3S0.
3 ай бұрын
@@ambushedraccoon6408 То бишь инклюд - это просто строка отвечающая за подключение файла в котором лежит доп. код? По сути ты и сам можешь написать нужные тебе инклуды и подключать их.
Предчувствую второй курс... Ооп+ технология созд. программного обеспеч.
Ахаха прям с первого факта мою ошибку которая мне долго покоя не давала рассказал ахахаха
@ambushedraccoon6408
2 жыл бұрын
Рад это слышать. А какой тайм код?
@augustvishnevsky9258
2 жыл бұрын
@@ambushedraccoon6408 прям самое начало про инклуды, про то что они фулл код файлов вставляют каждый раз
@augustvishnevsky9258
2 жыл бұрын
@@ambushedraccoon6408 была проблема со множественным включением, в свое время очень сильно заставила меня баттхёртить)
Чувак, ну ты качаешься и периодически орешь в микрофон из-за расстояния. Поставь компрессор или замени кресло качалку на что-то другое. А так видео, как всегда зачетное. PS, Пришлось все видео скачать, и накинуть компрессор на звук...
@ambushedraccoon6408
10 ай бұрын
Что за компрессор?
@itMasXteR
10 ай бұрын
@@ambushedraccoon6408 Фильтр для звука, сжимает диапазон сигнала. В данном случае, уменьшает разницу между самым громким и самым тихим участком дорожки.
Я новичок в C++, и единственное, чего я боюсь, - это математика. Его я не так хорошо знаю. Иногда теряю надежду из-за этого.
@ambushedraccoon6408
2 жыл бұрын
Зависит от уровня математики. С системами счисления нужно уметь работать. В остальном не должно быть большой помехой. Но я бы рекомендовал подтянуть, иначе это будет отрезать от вас большой кусок рынка вакансий.
@sergeykleshchenok5501
2 жыл бұрын
@@ambushedraccoon6408 школьной программы хватит для программирования или нужно еще высшую захватить?
@bakugo4062
2 жыл бұрын
@@sergeykleshchenok5501 зависит от ваших амбиций
@anatoliyv5607
Жыл бұрын
@@sergeykleshchenok5501 математика там не причем
@TurboGamasek228
Ай бұрын
если в гейм дев, то надо
Чтобы понять Плюсы, нужно узнать базу C?
@ambushedraccoon6408
2 жыл бұрын
Нет, это довольно устаревший подход. И потом бывает трудно перестать писать велосипеды и начать пользоваться С++ на 100%. Если хотите изучать плюсы начинайте с плюсов.
@princessmary5556
Жыл бұрын
Да, нужно. Любой уверенный программист с++ владеет базовым си.
@user-ws1ud4op9i
Ай бұрын
@@princessmary5556 ниче не нужно. про Си надо сразу забыть, как только познакомишься с тем, как там работает язык. Если мне сейчас дать, я без 2 стопок и гугла даже память динамически по "Сишному" не выделю.
@princessmary5556
Ай бұрын
@@user-ws1ud4op9i Вы пишете: *Если мне сейчас дать, я без 2 стопок и гугла даже память динамически по "Сишному" не выделю* Ваше невежество меня не интересует.
@user-ws1ud4op9i
Ай бұрын
@@princessmary5556 а при чем тут невежество? Это разные языки, в которых по-разному работают с той же памятью. Да это просто разные языки. Уверен, что 99% С++ программистов не вспомнят с первой попытки. И в этом нет ничего странного. Ну а если ты задрот, то… ну это твои проблемы(ну или достижение). Тут уж сам решай
На 49:06 можно ведь заменить if на while
@ambushedraccoon6408
Жыл бұрын
Привет. Нет, нельзя. Вот пример для проверки. std::vector input{ 5, 5, 5, 5, 5 }; for (int i = 0; i { while (input[i] == 5) { input.erase(input.begin() + i); } } Цикл while приведет в данной ситуации к выходу за пределы массива. Будут удалены все элементы, программа попытается сделать input[0] на пустом массиве и будет выброшено исключение.
@gdkor
Жыл бұрын
@@ambushedraccoon6408 Понял, спасибо
Respect!! Like and follow
а я все так и рассказывал всегда
нечего новго, наверное ток для тех кому преподавали С++ но не для тех кто с учебников учил
Все же системное программирование это драйвера а не winapi. Ну и писать их затруднительно в силу политики Microsoft.
примерами сам себя запутал
Задолбал чвякать, сглатывпть. Сплюнул хотя бы
звук ужасный, то перегрузка на микрофоне, то тихо. Найди, пожалуйста, кнопку авторегулировки уровня
@IExSet
10 ай бұрын
Чувак раскачивается и орёт в микрофон периодически, не поможет даже авторегулировка :-)
Отличный стрим прошел про the last of us 2... Не знаю, может такое кривое авто определение жанра ютубом влияет на рекомендации видео и прирост подписчиков. Попробуй проставить нормальные теги что ли. Как ютуб смог тут увидеть the last of us 2, даже название никак не намекает
@ambushedraccoon6408
3 жыл бұрын
Поправил игру. Это от другой трансляции настройки остались.
Компилятор С и С++ всегда создают промежуточный файл, obj. Который отправляется в Линкер, который уже и создает машинный код программы.Вводите людей в заблуждение.
@rubiks7196
6 ай бұрын
линкер не создает машинный код
Грубо говоря скажем так как бы в англоязычной литературе все это описано
Сначала студенты забивают на лекции, ничертамне делают на семинарах, списывают контесты и лабы, а потом... Нам не рассказали про include 😭 Никто не говорил, что данные копируются 😭 Нам не рассказали про итераторы и алгоритмы 😭 Что за правило трёх и пяти? 😭
Приколист 1:23:40 , отправлять а ссылкой и ожидать, что она скопируется в функции, это полный бред. Почему не написать в функции параметр(указатель) const?
@ambushedraccoon6408
11 ай бұрын
Почему по ссылке? через амперсанд я получаю адрес переменной и передаю в функцию, принимающую в качестве параметра указатель. Далее я показываю, что таким образом копирования не произошло и состояние объекта поменялось и "снаружи".
@shandy6113
11 ай бұрын
@@ambushedraccoon6408 адрес объекта получают через void func(A&a), а ты как мне видится передал адрес структуры и разыменовал его через оператор выбора объекта, указал на объект и изменил его, в структуре все публично. Если бы ты принял параметр void func(const A& a) должна была быть ошибка и это ссылка на объект структуры, а не на структуру. По этому есть стандартная передача в функцию копирование. В этом случае если я не ошибаюсь у тебя должна была бы, создастся альтернативная структура с альтернативным параметром(переменной) А а в функции, сделать свои дела и вернуть ничего, поскольку void. Отличия в void func(A&a) или func(const A& a) в приеме и отправке func(a) перед приемом void func(A*a) и отправкой func(&a) заключается в том, что в первом варианте ты не получишь никак ссылку на структуру, а во втором ты получишь в функцию ссылку на структуру.
@ambushedraccoon6408
11 ай бұрын
@@shandy6113 Нет. void func(A&a) - синтаксис передачи параметра по ссылке. синтаксис получения адреса: int x; int* xp = &x; в xp лежит адрес x, через амперсанд мы получаем адрес переменной.
Грубо говоря скажем так
Заебись у вас там институты ,если после обучения человек не знает что #include это директива препроцессора , чему учат тогда?
@user-ee2eu6ef4f
7 ай бұрын
Да уж, это ж база
Блин. АВТОР! Ты издеваешься?! Какого хрена эти шатания на кресле, как попугай на жерде? Прекращай клевать микрофон - его уровнем сигнала аж переколбашивает. Слушать невозможно. Бросил на ЧЕТВЕРТОЙ минуте.
@alazarnfreeman9216
Жыл бұрын
Еще жрёт и причмокивает , фу крч
@TurboGamasek228
Ай бұрын
если тебя это бесит, то возможно с твоей психикой что то не так...
6:53 при чём здесь "ассемблерные команды"? Результат трансляции и сборки действительно представляет собой исполняемый файл, но содержит он именно машинные команды, а язык ассемблера здесь вообще ни при чем, это просто другой язык. Низкоуровневый - да, содержит мнемоники машинных команд - да, но к компиляции на c++ отношения не имеет.
@user-ee2eu6ef4f
7 ай бұрын
То же самое написал.
Было такое чувство, что программирование не твое?
@ambushedraccoon6408
2 жыл бұрын
Привет. Нет, не особо. Возможно есть какие-то сферы, которые я жалею, что не попробовал. Но практически самого начала(13 лет) я знал, что быть мне програмистом. Я ничего другого попросту не умею делать.
@olexayko
2 жыл бұрын
@@ambushedraccoon6408 ахахаххаха, жизненно. Тоже собрался в программирование, как на других профессиях работают, вообще понять не могу. Удивлён с себя, что хотя бы программирование [вроде как] получается
хидер файл писец
Ууууу, извиняюсь, но нервы у тебя стальные бля, я-бы бомбил с их комментариев в течении стрима :333
Вот в 1:33:11 ты явно озвучиваешь недостатки С++. Никогда и никто в здравом уме не будет писать ядро ОС на С++. В чистом С таких проблем просто нет. По сути, когда ты пишешь на С, ты пишешь на "универсальном" ассемблере.... На С++ легко говнокодить, на С это просто невозможно. Я согласен, что С++ крут, но найти толковых разрабов просто нереально. Для бизнеса гораздо дешевле иметь С разрабов. Большинство из того, что пишется на С++ - говнокод и владельцы компаний просто не осознают этого. Зачастую прокатывает, но код такая шляпа, что люди, писавшие его, в последствии набираясь опыта начинают жалеть
@user-ws1ud4op9i
6 ай бұрын
Так если чел говнокодит на ++, то он точно так же будет говнокодить и на С обычном. Особенно если он никогда к обычному С и не прикасался.
@user-ws1ud4op9i
Ай бұрын
серьезно? на с не выйдет говнокодить? Чтобы на Си реально качественный код писать нужно быть профи. При чем профи в С, а не С++.
Невозможно смотреть: комментарии постоянно отвлекают и сбивают, аж бесит.
капец, че орешь в микрофон
Сделал remove_if и думает что очистил вектор😂 дальше можно не смотреть
@ambushedraccoon6408
11 ай бұрын
Ну ошибся, бывает.
2:34:10 размер ссылки равен нулю чувак!
@ambushedraccoon6408
2 жыл бұрын
Я так не думаю. Вот пример: struct RefSruct { int& x; }; struct NoRefSruct { }; int x; RefSruct ref{ x }; NoRefSruct no_ref; std::cout
@vadimdamour7704
2 жыл бұрын
@@ambushedraccoon6408 в конструкторе создаётся переменная которая весит 4. Сама ссылка на эту переменную не весит ничего. Поэтому нельзя выделить массив ссылок(вообще ни как). Потому что его размер будет 0.
@ambushedraccoon6408
2 жыл бұрын
@@vadimdamour7704 Немного сокращу пример, дабы не было никаких переменных. struct RefSruct { int& x; int& x1; }; struct NoRefSruct { }; std::cout
@princessmary5556
Жыл бұрын
Стандарт не уточняет каким именнно может быть размер ссылки. Поэтому, компиляторы могут выделять под ссылку сколько захотят. Другое дело, что у ссылки нет идентичности - нет своего объекта. Поэтому, само понятие "размер ссылки" имеет смысл только с точки зрения реализации в компиляторе. С точки зрения языка - само понятие отсутствует.
@IExSet
10 ай бұрын
@@vadimdamour7704 Чё правда что ли ? #include struct RS { int& v; }; int main() { int a = 3; int b = 2; int c = 1; auto arr = new RS[]{a,b,c}; std::cout
Питон - мастодонт? Лучшая шутка 2021 года. Я в Китае, китайцы его быстро разобрали и выкинули в мусорник. Китайцы о чем то знают?:)))
Самый тупой пример - добрый вечер 🤣
глотаешь слюну каждые 5 секунд противно на это смотреть
сколько воды,ппц. смотрел на 2х скорости и уснул. да еще и мат.
Блять, такая нудятина. Не проще не пытаться использовать "заумные фразы", а говорить без сложных терминов не касающихся разработки
@user-ee2eu6ef4f
7 ай бұрын
А где тут сложные термины?