*Cамый лучший способ сказать "спасибо" - поставить лайк и и поделиться уроком с друзьями. Это очень мотивирует создавать полезные уроки =)*
@заРНС-Саакашвили4 жыл бұрын
спасибо БОЛЬШОЕ что нашли не заезженную тему . . . именно подобного этому мало в ЮТУБЕ - например, взаимодействие частей программы, навыки и приемы программирования, поиск программ в сети (на гит-хаб) и пр.
@yidebn75363 жыл бұрын
кто то знает как собрать из папки с файлами внутри 1 dll?
@javiervazquez96304 жыл бұрын
Thank you for the support i didn't anything of russian language but i understand the text, you helped me because i doesn't found examples like yours. By the way, i am mexican but doesn't matter, thanks for all!!.
@AV1ch4 жыл бұрын
So you read google translated English from machine-generated Russian and still succeeded? I say you're lucky )
@mao31933 жыл бұрын
Афигеть. Тут информацию на русском не достать, приходиться в английский источники лезть. А тут все наоборот XD
@vlad7terentev6 жыл бұрын
какой же кайф, когда ты объясняешь так, что я понимаю с первого раза)) Как всегда на высоте!
@АлександрНекрасов-ч8г11 ай бұрын
Большое спасибо Сергей! Вы даже не представляете, какой шикарный контент Вы создали! Купил курс на Скиллбоксе, а учусь по вашим урокам. Лучшего контента по с++ на просто нет!
@АлександрАлександров-ф8к4л Жыл бұрын
Надо иметь талант, чтобы грамотно объяснять !
@ИванИванов-д5к3е6 жыл бұрын
Спасибо! Давно ждали урок про многофайловые проекты.
@Retyioaqe5 жыл бұрын
Если появляется предупреждение "ISO C++ forbids converting a string constant to 'char*'", то следует написать: void MyClass::PrintMessage(const char str[]){ std::cout
@gogawriter97184 жыл бұрын
А почему эта херня вылазит?
@ihy12344 жыл бұрын
@@gogawriter9718 Потому что "вот так записанная строка" - это const char* (её невозможно изменить) , а функция PrintMessage принимает неконстантный char* (предполагается, что его возможно изменить). Короче, когда функция не изменяет данные которые в неё передаются надо всегда приписывать const.
@iTema822 жыл бұрын
не забудьте в Хедере MyClass.h тоже поменять описание функции void PrintMessage(const char str[]);
@КириллГусарев-р5х2 жыл бұрын
Появляется*
@sS1nT-5 ай бұрын
да, либо использовать string)
@artlinestudio67353 жыл бұрын
Один из любимых уроков! Смотреть под кофе просто отлично! Спасибо! Просим продолжить уроки по С++. Самый интересный язык :)
@andrewbistroff75586 жыл бұрын
Сергей спасибо за шикарный урок!
@Ermine8826 жыл бұрын
Очередное спасибо за урок.
@МаликКадиевНИЯУМИФИИЯФиТ Жыл бұрын
Ты мастер своего дела! Спасибо за то что ты есть!
@Dmitrii826 жыл бұрын
Очень важный урок! Спасибо.
@go51906 жыл бұрын
Спасибо, за интересные уроки
@skandinow2 жыл бұрын
Как же понятно! Спасибо.
@nap0le0nb0naparte76 жыл бұрын
Спасибо за урок Сергей! Давно ждал урок про многофайловые проекты. Как всегда высший класс!!!
@vladalu97946 жыл бұрын
Спасибо огромное Сергей, очень интересный урок!!!
@ИгорьПетров-р7х6д Жыл бұрын
Отличное объяснение материала, спасибо
@frankbelfort89676 жыл бұрын
Спасибо, отличный урок, все очень подробно и понятно)
Спасибо за урок. Хотелось бы уроки про unit тесты, лямбды и функторы
@Хиро-з3о3 жыл бұрын
Если бы не ты, то я бы не знаю, что делал. Огромнейшее спасибо тебе за Все уроки, смотрю и кайфую от того, что все супер-понятно)
@HugoBossKosta2 жыл бұрын
наконец-то тема про многофайловый проект, спасибо большое!!!
@kazikhangereykhanov77586 жыл бұрын
Спасибо давно ждал
@sankarshanarama67532 жыл бұрын
Серёжа!!! Дай Бог тебе здоровья! Наконец-то понятно эту тему раскрыл для себя))
@МедведКулибяка3 жыл бұрын
Очень полезный урок. Многое стало на свои места. Спасибо!!!
@getwellsoonsoonsoon5 ай бұрын
Спасибо, вы мне помогли!
@Алексей-в5н7с6 жыл бұрын
Ураааааа!!!!я ждал)Спасибо большое)
@euaek3 жыл бұрын
Спасибо большое.
@C2H5OHH3 жыл бұрын
Супер, спасибо!
@dmitry31546 жыл бұрын
Очень важная тема, больше уроков про многофайловые проекты
@ДмитрийРоманчук-д2н4 жыл бұрын
Прекрасный урок, я бы его добавил при изучении Класса, у нас к примеру в Джава сразу учили выносить все в разные папки и каждый класс делать в отдельно созданном классе( имеется в ввиду отдельный класс в cpp с аналогией в С++)
@pavelios35775 жыл бұрын
Спасибо за видео.
@Ivan-Shyriaiev4 жыл бұрын
Блин это ж супер удобно... + Смысл Инкапсуляции стал более понятный. Спасибо большое !
@stanislavafellay78224 жыл бұрын
Отлично объясняете !! Очень подробно
@Name-s9xАй бұрын
+
@sleepyNovember_project9 ай бұрын
О да, это удобно, это сладко
@croche33986 жыл бұрын
Как всегда на высоте! :)
@Orange_99917 күн бұрын
Легенда
@NIKOLAY_PSHONIA5 жыл бұрын
Спасибо за труды. Теперь не тупо пишу в один листинг а разбиваю.
@АлександрПасевич-п1ч3 жыл бұрын
Спасибо огромное) Как всегда выручаешь
@abakarkamalov74175 жыл бұрын
Спасибо) Благодаря Вам понял)
@СарматПересветов3 жыл бұрын
Круто, очень хорошо обьясняешь, большое спасибо)
@timati2316 жыл бұрын
спасибо за объяснение, всё четко и понятно. Сделай пожалуйста видел про библиотеку random и принципы ее работы.
@mykhailomorhal21816 жыл бұрын
Спасибо)
@ЯрославГоловко-ф6и4 жыл бұрын
спасибо
@MrBlackKinght3 жыл бұрын
Во-первых спасибо за уроки они бесценны, а теперь вопрос: а нет случаем способа работать с шаблонными классами в понятии многофайлового проекта? По стандарту с++ реализацию таких классов советуют писать в самом header класса, но хотелось бы это делать в cpp. Буду очень благодарен за ответ.
@atmosphere22814 ай бұрын
вместо - PrintMessage(char str[]);, нужно писать - PrintMessage(const char *str);
@brainboom55095 жыл бұрын
Почему у меня чтобы заработало нужно подключать .cpp файл, а не .h ?
@cppprograms58684 жыл бұрын
мне кажется что вы знаете С++ лучше чем сам Страуструп. А объясняете просто как зверь. Спасибо!!1
@Face-gz4gc4 жыл бұрын
Невежда, ты просто не умеешь читать.
@cppprograms58684 жыл бұрын
@@Face-gz4gc почему сразу невежда?
@Face-gz4gc4 жыл бұрын
@@cppprograms5868 чувак, ты сказал автора канала, который учился по тем же книгам создателей, умнее их
@cppprograms58684 жыл бұрын
@@Face-gz4gc я сказал что "мне кажется". Придурок сам научись читать нормально.
@pluto26566 жыл бұрын
следующий анонсированный урок жду больше, в свое время пришлось пострадать)
@libcurlcntrl6 жыл бұрын
Спасибо за видео, Сергей. Не могли бы вы сделать урок про лексический анализ строк (например, как считать строку и разбить ее на составляющие, чтобы, например, написать калькулятор)
@КириллГусарев-р5х2 жыл бұрын
Если в строке будет простое выражение с одним действием типа 2*6.2, то можно заюзать регулярные выражения. Это намного проще и удобнее, чем писать огромный парсер (это уже для сложных математических выражений).
@libcurlcntrl2 жыл бұрын
@@КириллГусарев-р5х Спустя четыре года я стал девопсом и поднимаю куберы, но было приятно пересмотреть ролик вновь и поностальгировать с того, с чего начинал )
@КириллГусарев-р5х2 жыл бұрын
@@libcurlcntrl рад за тебя) А меня пока никуда не хотят принимать
@TonyStark-b4w7 ай бұрын
@@КириллГусарев-р5х Как успехи сейчас?
@_imperial_67626 жыл бұрын
У меня студия 17-го, подчеркивает строку m.PrintMasseg("Hello World!"); а если быть точным то строку которую мы передаем "Hello World!" , ругается и пишет что не может конвертировать const char[] to char[]?
@vvl64366 жыл бұрын
Спасибо за урок, не могли бы вы сделать урок на тему, "Перегрузка операторов при полиморфизме"? , а то инфо мало. Например: есть абстрактный базовый класс, A от него B, C и при перегрузке равно B = C , результат был типа B и наооборот.
@CYBERTeamOnlineSportTV5 жыл бұрын
Лучший, красава дядь)
@kucer0043-Games9 ай бұрын
4:20 начало
@EvgeniyL-f7e6 жыл бұрын
Здравствуйте! Тоже ждал подобного урока, но у меня есть вопрос на который я пока не нашел ответ или пример реализации. Как использовать в cpp файле объект класса созданный в другом cpp файле. Пример: пишу программу для устройства на микроконтроллере. Использую стороннюю библиотеку для вебсервера. В файле init.cpp создаю объект класса: WebServer server(80); В этом файле также делаю инициализацию сервера с помощью методов данного класса, например server.begin(); и т.д. А в основном файле main.cpp я использую методы для работы с сервером server.on(........); server.handleClient(); и т.д. Соответственно в main.cpp мне как-то нужно достучаться до объекта server, пробовал объявлять как extern WebServer server(80); компилятор выдает multiply definition, пробовал extern WebServer server(int port); вылазит другая ошибка. Подскажите правильный механизм. Заранее спасибо. P.S. Если создаю объект без параметров, например Websocket socket в файле init.cpp, а в main файле: extern Websocket socket; такой объект виден в main.cpp и компиляция проходит. Я так понимаю у меня ошибка в синтаксисе - extern WebServer server(int port);
@РоманКостяБелых Жыл бұрын
А разве подключение сразу двух библиотек иострим не слишком затратно по памяти ?
@wotmastersclub5559 Жыл бұрын
Посмотрел и расстроился 😢 Как оказывается много чего не знаю
@sleepyNovember_project9 ай бұрын
Чего расстраиваться, наоборот, если не знал, то это крутая и не сложная инфа, которую приятно узнать
@_m.k.s_80602 жыл бұрын
Как сделать так, что бы из дополнительного .срр файла значение при вызове функции присваивалось переменной
@unclestepa2 жыл бұрын
Как включить желтые вертикальные полосы слева?
@alexeysolovjoff52414 ай бұрын
Зачем в файле Sum.cpp делать include Sum.h. И без этого инклюда всё прекрасно работает.
@ДмитрийСафронов-ц6т Жыл бұрын
Добрый день, спасибо за видео-урок все очень доступно и понятно. Подскажите, пожалуйста, как можно использовать наследование классов в многофайловом проекте?
@Get_Boros Жыл бұрын
Наследуемся от exception. Главное не забивать подключить директиву препроцессора где лежит предок class AsLesson_Exception : public exception { public: AsLesson_Exception(const char *msg, int Data_State); int Get_Data_State(); private: int Data_State; };
@Nuisho6 жыл бұрын
Лайкнул - посмотрел - раскидал по месенджерах. Что за 8-битная музычка на фоне тихонько так играет?
@SimpleCodeIT6 жыл бұрын
Demise - Ethan Meixsell
@Alex_Railnolds4 жыл бұрын
Подскажите, возможно ли как-то сделать так, чтобы директивы препроцессора тип #define работали во всем многофайловом проекте, а не только там где они были объявлены? Ну чтобы во всех файлах происходило замещение. Например сделать отдельный файл типа конфигурационный, где через #define задать какие-то значения, а потом эти значения распространились бы на все файлы проекта.
@EJNINE4 жыл бұрын
Большое спасибо, за помощь бедным студентам))0
@Flamerman-rx5bp2 жыл бұрын
А структуру как записывать в эти файлы?
@BossBig-hi1ym11 ай бұрын
лайк с двух аккаунтов)
@JohnSmith-es2fh3 жыл бұрын
а обязательно добавлять cpp файл? просто я делал без cpp и у меня всё было норм
@s1lentgrave4 жыл бұрын
А если я в другой компилятор использую Atom+ плагин gpp, я сделал тоже самое, только всё в одной папке(без папки "заголовочные файлы") у меня не находится функция из другого файла, что делать? может нужно через командную строку создать проект как-то, чтобы все нужные папки создались(например)?
@bezik5722 жыл бұрын
эх... Все летит с ошибкой: Undefined symbols for architecture arm64: "Sum(int, int)", referenced from: _main in main.cpp.o... Дело не в арм, на Rosetta 2 тоже самое. Если не подключать файл в CmakeLists.txt, то ничего не работает, но так быть точно не должно
@bezik5722 жыл бұрын
скорее всего .h не инициализирует cpp
@yaevgen4592 ай бұрын
@@bezik572 спустя столько лет... нашлось решение?
@streview22544 жыл бұрын
А як створити йього без VS, в провіднику.
@Yupitrer4 жыл бұрын
Я как раз тот случай. Начал писать ардуино умный дом на с++ и у меня 1500 строк кода. И это пизд..ц. Вот я тут
@Alexander-qr4nk2 жыл бұрын
А 138-й урок существует?
@Sergey-mq3ol5 жыл бұрын
cool
@johnwick83326 жыл бұрын
Сергей индивидуальные уроки не проводите?
@SimpleCodeIT6 жыл бұрын
Сейчас нет.
@natalysammet6564 жыл бұрын
Делала всё, как в видео, но почему-то среда разработки в упор не видит cpp файла с реализацией :(
@MashkaShow4 жыл бұрын
Nataly Sammet visual studio code? Macos?
@natalysammet6564 жыл бұрын
@@MashkaShow К счастью, я нашла решение :) Дело в том, что я занималась реализацией шаблонного класса - тогда ещё не знала, что такие классы нельзя разбивать на хидеры и cpp-шники. Теперь вот знаю
@moonrider86976 жыл бұрын
Кто нибудь знает что делать если при выводе строки пишет невозможно преобразовать аргумент 1 из const char[11] в char []???
@Ii_Naomasa_san6 жыл бұрын
Я, короч, перед char дописал const и всё заработало.
@moonrider86976 жыл бұрын
Evgenii Lucevich спасибо
@СправаФея6 жыл бұрын
дело в последних обновах VS2017,
@gant85116 жыл бұрын
а когда будут курсы по с#
@yidebn75363 жыл бұрын
кто то знает как собрать из папки с файлами внутри 1 dll?
@cashperovskygo33185 жыл бұрын
не понятно зачем нужна 2 файла cpp и h? зачем в h писать пустую функцию а в cpp описанную?
@Buru-nyuu5 жыл бұрын
В начале же объяснили всё, .h файлы чтобы не было много кода в основном файле, а вот .cpp нужно использовать чтобы избежать ошибок компоновщика(погуглите)
@fv_games Жыл бұрын
А как насчёт hpp
@sleepyNovember_project9 ай бұрын
А это не тот же .h?
@serhiyhrytsiuk43766 жыл бұрын
Просто для апа
@vakhander12873 жыл бұрын
ЗДравствуйте, а что делать если пишет: undefined reference to `List_str::push_back(std::__cxx11::basic_string
@vakhander12873 жыл бұрын
Если что List_str (мой класс), push_back (метод класса) и дальше идут аргументы метода.
@WizardPlatypus4 жыл бұрын
Время доброе! #вопрос : как отделить реализацию шаблонного класса от хедера? Я немножко порылся в сети, ничего дельного и красивого не обнаружил.
@Name-s9xАй бұрын
+
@realkjasonstatham2 жыл бұрын
Комментарий
@Алексей-в5н7с6 жыл бұрын
Сергей обещаю,когда стану разработчиком,тебе задоначу половину своей первой зарплаты)
@МинутноеВидео5 жыл бұрын
Ну как успехи?
@habibullohuvaidulloev33292 жыл бұрын
так многие говорили ....
@zexis1771 Жыл бұрын
Стал?
@KhzhLIVE6 жыл бұрын
может сменишь уже музло)
@KhzhLIVE6 жыл бұрын
приелся уже запил)
@higiro93333 жыл бұрын
Нахуя тут так сложно придумали?? Почему нельзя по нормальному залить один файл в другой без всяких там заголовков, прототипов и тд..
@euuhgzz27914 ай бұрын
согл
@higiro93334 ай бұрын
@@euuhgzz2791 Смысл в том, что когда объявления и реализации находятся в разных файлах, то появляется возможность не перекомпилировать весь проект при маленькой правке. То есть у тебя есть некий модуль, который используется в других модулях, если его поправить, то изменятся все модули и в больших проектах такой код можно будет час компилировать, а ты всего-то цвет кнопки хотел поменять и посмотреть че будет. 3 года прошло, понял зачем это надо было, и сейчас я занимаю крайне противоположную позицию))
@euuhgzz27914 ай бұрын
@@higiro9333 на самом деле тут проблема в организации проекта и его некоторый стиль Разбивать на разные файлы имеет смысл только при глобальном разделении модулей (проектов либ) а по поводу внешних символов - это только для статической линковки, в ней все равно код нормально не скроешь, поэтому тут только статическая заглушка и dll По хорошему надо компилировать в одной единице трансляции тк не даете раскрыться компилятору, больно долго он переаллоцирует память под новую единицу - когда есть штук 50 единиц по 2-5к строк -- это очень долго - один жирный файл быстрее соберется (Апят про внешние символы прототипов - декларация) Еще хренова что компилятор при симантическом анализе учитывает только то что выше декларации вызова, простыми словами единица не является семантически модулем -- поэтому чтоб это учитывать приходиться включать каждый раз одни и те же символы прототипов - что жрет время на синтаксическом и семантическом анализе Единственно как это можно починить - переосмыслить проект и забыть навязанные стереотипы -семантически класс является модулем Поэтому класс можно использовать как комплексный модуль со статическими методами и тд. Т.е. как неймспейс но с семантикой Получается некоторый c# и довольно удобно - реализация естественно сразу пишеться без разделения символов И потом это тупа мержить в одну единицу - скомпилируется это быстро, нет лишних символов и тд, и оптимизация будет более четкой
@Orange_99917 күн бұрын
Спасибо что объяснил @@higiro9333
@pudjeblechole Жыл бұрын
Можете подсказать объяснить, почему нельзя написать определение (реализацию) функции в хедере?
@artefek73006 ай бұрын
Можно, но скорее всего он был создан чтобы только оглашать.
@ELVIRA_JDANOVA10 ай бұрын
ЗДРАВСТВУЙТЕ УРОК 138 НЕ МОГУ НАЙТИ 137 СЛЕДОМ ИДЕТ 139 ПОСЛЕ БИБЛИОТЕК STL !