*Cамый лучший способ сказать "спасибо" - поставить лайк и и поделиться уроком с друзьями. Это очень мотивирует создавать полезные уроки =)*
@zaramar82507 жыл бұрын
Вот бы урок по теме "очереди"))
@expert66096 жыл бұрын
Присоединяюсь!
@Freedom_Code5 жыл бұрын
странное дело, пишу по вашему уроку код и встретил проблему , у меня вместо double пишется просто d , вместо int - пишется i , а вместо class Point выводится 5Point ? Как исправить ?
@nativenova65034 жыл бұрын
если есть ошибка то нужно написать так. 1) typeid(this->value).name() 2) TypeInfo(T1 value):TypeSize(value)
@artlinestudio67353 жыл бұрын
у меня отработало просто: ....typeid(T1).name(); В документации на Майкрософт, так и предлогают. В общем, смотрю вариантов много.
@Украинец-х2н2 жыл бұрын
Спасибо релаьно
@ДмитрийБузницкий-б3н2 жыл бұрын
Спасибо тебе большое :) Всё работает
@vvp65522 жыл бұрын
У меня 2 ошибка которую вы указали. полчаса мучался сидел 🤦♂️
@dennisparabola7322 жыл бұрын
Спасибо
@Salavat1k5 жыл бұрын
Минут 15 бился, ошибка пропала только с таким вариантом: class TypeInfo: public TypeSize { public: TypeInfo(T1 value) : TypeSize(value){} void ShowTypeName() { cout
@alexey1045 жыл бұрын
Да, лучше именно так писать, зависит от компилятора и ОС, но ваш вариант должен компилироваться на всех системах.
@paruyrmeliqyan4 жыл бұрын
Здравствуйте. Большое спасибо, очень помогли.
@michaelivanov16054 жыл бұрын
Большое спасибо! У меня visual studio 2019.
@mikayilhuseynzada95654 жыл бұрын
bolshoe spasibo
@koloningleb59454 жыл бұрын
Спасибо, помогли!
@str_0xdc6564 жыл бұрын
У кого выводятся ошибки типа (недопустимая инициализация члена : MyClass не является базовым классом) или типо нету базового подходящего класса(что-то в этом духе) делаете такую штуку: MyClass2(T value):MyClass(value) { } В конструкторе наследника указываете MyClass2(T value):MyClass(value) и все
@angelpensive91455 жыл бұрын
По стандарту так: typeid(this->value).name() иначе до value не достучитесь.
@ДаниилЪ-б2з5 жыл бұрын
Спасибо.
@ivanaldabaev11874 жыл бұрын
я тоже сделал через this, а не через явное указание базового класса
@exaliffeed58404 жыл бұрын
можно добавить using TypeSize::value; в класс-наследник.
@AndriiStreange3 жыл бұрын
Спасибо тебе добрый человек )))
@artlinestudio67353 жыл бұрын
у меня отработало просто: ....typeid(T1).name(); В документации на Майкрософт, так и предлогают. В общем, смотрю вариантов много.
@overdoses17946 жыл бұрын
Это лайк, господа! Лайк и репост!
@danielshaimkulov63067 жыл бұрын
изучаю с++ у вас на канале огромное спасибо вам все ясно и четко. пересмотрел миллион каналов про с++ у вас самый лучший!
Самые понятные и нескучные уроки, СПАСИБО !) На середине прошлого урока возник вопрос наследования шаблонных классов))Приятно увидеть свой вопрос в теме этого урока)
@ilmi68055 жыл бұрын
а уроки лучшие в инете что я встречал, желаю 10 лямов подписчиков автору
@sergbo55096 жыл бұрын
Хорошие уроки, но хотел бы уточнить, вернее поправить. На 4:10 вы говорите что тип Т мы узнаем в момент создания объекта типа СlassInfo. Это в корне не верно! Создание объектов какого либо класса происходит runtime т.е. во время выполнения. Но шаблоны это инструментарий compile-time. Т.е. Какой будет тип должно быть известно на момент компиляции и не может быть изменено после. Это очень важный момент может вызвать непонимание у начинающих программистов. Вот в с шарп обобщение работает в рантайм, но в плюсах только компайл. Грубо говоря шаблоны дает возможность генерировать исходный код за нас где-то в закулисье. Т.е. технически это значит берет эту Т подставляет указанную строку "int" и скармливает обычному компилятору, так же как и мы могли бы сделать "поиск и замена" в своем исходнике.
@myos88917 жыл бұрын
Спасибо за уроки! Сергей, удачи вам в Новом Году!
@KurpatovInstagram7 жыл бұрын
Благодарю!
@bakaproductionsempai75915 жыл бұрын
Если бы компилятор мог снимать уроки, ты бы составил ему конкуренцию)) Очень без воды , очень доступно ) Вот бы видос еще про реализацию виртуального конструктора))
@lightseeker745 Жыл бұрын
Ахахахахахахх, угарный комм)))
@artlinestudio67353 жыл бұрын
Обязательный, душевный лайк, за очень полезный урок! Большое спасибо! Сергей, пожалуйста возобновите уроки по С++. Смотрим по второму разу, хочется продолжения, узнать, чем же там закончится дело! Столько лет ждем с верой и правдой. Пожалуйста!
@ShiphonalPluto5 ай бұрын
explicit TypeInfo(T1 value) : TypeSize(value){} в CLion работает только так (8:53) cout
@Ermine8827 жыл бұрын
Спасибо за урок.
@ВадимКлимов-й1щ4 жыл бұрын
Уже год как работаю программистом С++. Начинал с этого канала) Рад, что он так вырос. Был здесь еще при 10к подписчиков.
@TM-kz4hm4 жыл бұрын
Что научился делать,когда прошел все уроки?:D
@asankod85493 жыл бұрын
дай советы ))
@wantonhatch8673 жыл бұрын
@@TM-kz4hm видимо научился, раз работает программистом
@romankuznetsov46012 жыл бұрын
@@TM-kz4hm очевидно он научился писать код на плюсах =)
@segars9604 Жыл бұрын
Спасибо за бесценный труд!)
@DmitryDolganov5 жыл бұрын
Сергей, спасибо!
@АндрейМиненко-ц3з6 жыл бұрын
Спасибо за урок
@akkh69712 жыл бұрын
Большое спасибо за такой труд!
@Antonov_Ivan.11 ай бұрын
Спасибо за урок!
@medetkhanaltynbek14423 жыл бұрын
Очень интересный был урок и супер полезный! Благодарю!!!
@mykhailomorhal21816 жыл бұрын
Спасибо=)
@user_x1383 жыл бұрын
Сработало только так: 1) В методе ShowTypeName поле value работает только через указатель this; 2) При делегировании конструктора класcа TypeName синтаксис указания конструктора базового класса выглядит так: TypeSize(value) Спасибо парням ниже. Сергей ты лучший( пишешь так чтобы нам еще и голову приходилось включать). Только вот вопрос: как у тебя все работает?
@gavyttop13413 жыл бұрын
цыганская магия
@romankuznetsov46012 жыл бұрын
у него IDE от MicroSoft, с компилятором от них же, а МС любит свои велосипеды совать туда, куда не следует
@lovxxs Жыл бұрын
Ну ты и тупень, я в шоке. Видео пятилетней давности, а ты пишешь спустя 3 года. Теперь включаем мозг и понимаем, что у вас разные версии студии.
@Orange_999Ай бұрын
Комментарии всегда выручают:)
@go51907 жыл бұрын
Спасибо!
@noiseless68006 жыл бұрын
Как всегда все хорошо, но было пару нестыковок, спасибо коментаторам.
@C2H5OHH3 жыл бұрын
Thank you for the lesson!
@neverhoodJK6 жыл бұрын
Все понятно, большое спасибо! только все равно ничего не понятно... Лайк, как всегда, за отличную работу!
@СергейРохин-и1ш3 жыл бұрын
Отличные уроки. Один недостаток - слишком подробно, до такой степени, что смотреть можно с любой серии! ))))
@alexey1045 жыл бұрын
Нелишним было бы отметить, что конструкция 'template' должна также использоваться при определении методов шаблонного класса вне тела этого класса.
@ilmi68055 жыл бұрын
строка 71 на видео cout
@Kokurorokuko3 жыл бұрын
Прохожусь отладчиком. Передаю в конструктор по умолчанию число 3. Навожусь на поле value типа T в базовом классе. Там почему-то сразу после захода в конструктор класса-наследника лежит число 3, хоть инициализация ещё не произошло, мы ещё даже не перешли в конструктор базового класса. Как так может быть? Если навестись на this->value в класе родителе, то там появлятся тройка только инициализации, то есть всё правильно.
@АртёмПичкур-о4с3 жыл бұрын
Боже, я до конца верил что ошибся сам, к счастью люди в комментариях помогли, спасибо
@psyxodolby086 жыл бұрын
typeid(value).name() VS2017 ругается таки Ошибка C2228: выражение слева от ".name" должно представлять класс, структуру или объединение ClassTemplates
@timurortskhanov85276 жыл бұрын
Берлога Neo здравствуйте. Ответьте пожалуйста вы решили эту проблему. Если да то как. У меня тоже компилятор не видит переменную value и ругаеться
@vladalu97946 жыл бұрын
я решил данную проблему перетащив метод ShowTypeName() в базовый класс TypeSize, тогда работает, может есть и более эффективные пути))
@vladalu97946 жыл бұрын
может быть стоит поиграть с ключевым словом friend, но у меня таким образом ничего не вышло( А вообще странно, что у Сереги работает, а у меня в той же студии 2017 не работает, где подвох?
@timurortskhanov85276 жыл бұрын
Vladislav Trubin Я сделал так же. Но хотел как автор. Видать не судьба. Спасибо Вам.
@vladalu97946 жыл бұрын
Товарищи до меня дошло нужно писать вот так: void ShowTypeName() { cout
@liudasliudelis96666 жыл бұрын
Dėkui
@newprogram93917 жыл бұрын
Добрый день, хотел спросить слышали ли что нибуть о квантовом программировании? Про то что компания М-А-Й-Крософт(пишу так из-за того, что ютуб удаляет автоматически мой комментарий, если там есть слово microsoft) выпустила новый quantum development kit для разработки на совершенно новом виде комп'ютеров - квантовых. Они выпустили новый язык программирования (q#) и симуляцию 30 кубитов для разработки, и это все для давно знакомого нам VS! Скажите чо думаете? Думаю перспективы у этой штуки гигантские. Можете посмотреть на официальном сайт MS. Спасибо за уроки!
@programmingprofi7787 жыл бұрын
Интересно. Думаю стоит посмотреть, хотя пока кубити можно хранить только при очень низких температурах.
@newprogram93917 жыл бұрын
Думаю их будут улучшать со временем, пока не будут достаточно стойкими, чтобы не распадаться. Когда транзисторы в обычних комп'ютерах дойдут до уровня атома, тогда и будут квантовые комп'ютеры, хотя чтото мне подсказывает, что будут они значительно раньше.
@myos88917 жыл бұрын
За этим будущее. Хотя нужно еще подождать.
@myos88917 жыл бұрын
Они, я думаю сначала будут применяться в сложных вычислениях, космосе, машинном обучении, BigData, а потом уже будут в каждом доме. Возможно к тому времени появятся ещё новые области кроме вышеперечисленных в которых он будет использоваться. Вообщем ждём.
@myos88917 жыл бұрын
Кстати майкрософтт сказал, что код написанный на Q# на обычном комп'ютере будет работать и на квантовом, так как там будет симуляция этих самих кубитов, но там этот девелопмент кит надо отдельно скачивать и ставить на vs.
@ЯрославГоловко-ф6и4 жыл бұрын
спасибо
@Ivan-Shyriaiev4 жыл бұрын
В базовых классах все переменные записывал в приват секцию. А в классах наследниках чтобы поменять эти переменные, писал Базовыйклас::GetVariable(); А оказывается через protected: секцию можно -___-
@_imperial_67626 жыл бұрын
Код не работает!
@pavelios35776 жыл бұрын
Уважаемые, почему-то код не работает, перебрал все варианты, предложенные ниже. #include не влияет ни как. Пишет ошибка: . Может кто понял в чём дело, буду благодарен за ответ. Может работа VS 17 зависит от винта, у меня установлена 64-разрядная операционная система. И вообще, ерунда какая-то: шаблон должен быть один. а тут один шаблон появился и тут же ещё куча их и полная неразбериха, неудивительно.
@denned41924 жыл бұрын
такая же ерунда
@PixelArtCode5 ай бұрын
Тип данных не выводится, как в видео. Только $ и первая буква типа. В пользовательских типах $ и имя типа
@Kokurorokuko3 жыл бұрын
Как я понимаю, тип T в классе родителе и тип T в классе наследнике - это разные типы?
@ТимерланБатаев2 жыл бұрын
Шаблоны разные, да.
@andrewbistroff11996 жыл бұрын
Спасибо за урок!(на VS 17 не работает)
@timurortskhanov85276 жыл бұрын
Andrei Bistroff это точно? На VS 2017 не как не получиться?
@yourownazog80696 жыл бұрын
@@timurortskhanov8527 получится, нужно немного изменить код!
@Куся-ч9я3 жыл бұрын
У меня какого-то чёрта вызывается конструктор по умолчанию класса Point на моменте вызова конструктора класса-предка TypeSize. А если бы работали с динамической памятью, произошла бы утечка. На видео подобной проблемы нет. В чем дело?
@Куся-ч9я3 жыл бұрын
Всё, до меня дошло. Компилятор же должен сначала создать объект класса Point в памяти, куда мы будем присваивать this->value = value. Ему сначала нужно определить this->value, чтобы туда всунуть ту точку, которую мы передаем. Вдруг кого тоже эта мысль замучала во время прохода с отладчиком)
@denned41924 жыл бұрын
class Point { public: Point() { x = y = z=0 ; } Point(int x, int y, int z) { this->x = x; this->y = y; this->z = z; } int x; int y; int z; }; template class TS { public: TS(T1 v) { this->v = v; } void D() { cout
@ivanrozb3 жыл бұрын
cout
@i4q2367 жыл бұрын
Аффтар жжот!!! ))))))))))))))
@shestak.E2 жыл бұрын
Наследование конструктора не работает теперь!!!!! И при попутке использовать тип string ошибка чтения символов 🤦♂