Наследование шаблонных классов. Изучение С++ для начинающих. Урок

  Рет қаралды 50,522

#SimpleCode

#SimpleCode

Күн бұрын

Пікірлер: 147
@SimpleCodeIT
@SimpleCodeIT 7 жыл бұрын
*Cамый лучший способ сказать "спасибо" - поставить лайк и и поделиться уроком с друзьями. Это очень мотивирует создавать полезные уроки =)*
@zaramar8250
@zaramar8250 7 жыл бұрын
Вот бы урок по теме "очереди"))
@expert6609
@expert6609 6 жыл бұрын
Присоединяюсь!
@Freedom_Code
@Freedom_Code 5 жыл бұрын
странное дело, пишу по вашему уроку код и встретил проблему , у меня вместо double пишется просто d , вместо int - пишется i , а вместо class Point выводится 5Point ? Как исправить ?
@nativenova6503
@nativenova6503 4 жыл бұрын
если есть ошибка то нужно написать так. 1) typeid(this->value).name() 2) TypeInfo(T1 value):TypeSize(value)
@artlinestudio6735
@artlinestudio6735 3 жыл бұрын
у меня отработало просто: ....typeid(T1).name(); В документации на Майкрософт, так и предлогают. В общем, смотрю вариантов много.
@Украинец-х2н
@Украинец-х2н 2 жыл бұрын
Спасибо релаьно
@ДмитрийБузницкий-б3н
@ДмитрийБузницкий-б3н 2 жыл бұрын
Спасибо тебе большое :) Всё работает
@vvp6552
@vvp6552 2 жыл бұрын
У меня 2 ошибка которую вы указали. полчаса мучался сидел 🤦‍♂️
@dennisparabola732
@dennisparabola732 2 жыл бұрын
Спасибо
@Salavat1k
@Salavat1k 5 жыл бұрын
Минут 15 бился, ошибка пропала только с таким вариантом: class TypeInfo: public TypeSize { public: TypeInfo(T1 value) : TypeSize(value){} void ShowTypeName() { cout
@alexey104
@alexey104 5 жыл бұрын
Да, лучше именно так писать, зависит от компилятора и ОС, но ваш вариант должен компилироваться на всех системах.
@paruyrmeliqyan
@paruyrmeliqyan 4 жыл бұрын
Здравствуйте. Большое спасибо, очень помогли.
@michaelivanov1605
@michaelivanov1605 4 жыл бұрын
Большое спасибо! У меня visual studio 2019.
@mikayilhuseynzada9565
@mikayilhuseynzada9565 4 жыл бұрын
bolshoe spasibo
@koloningleb5945
@koloningleb5945 4 жыл бұрын
Спасибо, помогли!
@str_0xdc656
@str_0xdc656 4 жыл бұрын
У кого выводятся ошибки типа (недопустимая инициализация члена : MyClass не является базовым классом) или типо нету базового подходящего класса(что-то в этом духе) делаете такую штуку: MyClass2(T value):MyClass(value) { } В конструкторе наследника указываете MyClass2(T value):MyClass(value) и все
@angelpensive9145
@angelpensive9145 5 жыл бұрын
По стандарту так: typeid(this->value).name() иначе до value не достучитесь.
@ДаниилЪ-б2з
@ДаниилЪ-б2з 5 жыл бұрын
Спасибо.
@ivanaldabaev1187
@ivanaldabaev1187 4 жыл бұрын
я тоже сделал через this, а не через явное указание базового класса
@exaliffeed5840
@exaliffeed5840 4 жыл бұрын
можно добавить using TypeSize::value; в класс-наследник.
@AndriiStreange
@AndriiStreange 3 жыл бұрын
Спасибо тебе добрый человек )))
@artlinestudio6735
@artlinestudio6735 3 жыл бұрын
у меня отработало просто: ....typeid(T1).name(); В документации на Майкрософт, так и предлогают. В общем, смотрю вариантов много.
@overdoses1794
@overdoses1794 6 жыл бұрын
Это лайк, господа! Лайк и репост!
@danielshaimkulov6306
@danielshaimkulov6306 7 жыл бұрын
изучаю с++ у вас на канале огромное спасибо вам все ясно и четко. пересмотрел миллион каналов про с++ у вас самый лучший!
@SimpleCodeIT
@SimpleCodeIT 7 жыл бұрын
Пожалуйста!)
@kaynsolo
@kaynsolo 6 жыл бұрын
Базаришь!
@SimpleCodeIT
@SimpleCodeIT 7 жыл бұрын
#шаблоныклассов #обобщенныеклассы #SimpleCode #урокипрограммирования
@Вероника-щ1ф6у
@Вероника-щ1ф6у 6 жыл бұрын
Самые понятные и нескучные уроки, СПАСИБО !) На середине прошлого урока возник вопрос наследования шаблонных классов))Приятно увидеть свой вопрос в теме этого урока)
@ilmi6805
@ilmi6805 5 жыл бұрын
а уроки лучшие в инете что я встречал, желаю 10 лямов подписчиков автору
@sergbo5509
@sergbo5509 6 жыл бұрын
Хорошие уроки, но хотел бы уточнить, вернее поправить. На 4:10 вы говорите что тип Т мы узнаем в момент создания объекта типа СlassInfo. Это в корне не верно! Создание объектов какого либо класса происходит runtime т.е. во время выполнения. Но шаблоны это инструментарий compile-time. Т.е. Какой будет тип должно быть известно на момент компиляции и не может быть изменено после. Это очень важный момент может вызвать непонимание у начинающих программистов. Вот в с шарп обобщение работает в рантайм, но в плюсах только компайл. Грубо говоря шаблоны дает возможность генерировать исходный код за нас где-то в закулисье. Т.е. технически это значит берет эту Т подставляет указанную строку "int" и скармливает обычному компилятору, так же как и мы могли бы сделать "поиск и замена" в своем исходнике.
@myos8891
@myos8891 7 жыл бұрын
Спасибо за уроки! Сергей, удачи вам в Новом Году!
@KurpatovInstagram
@KurpatovInstagram 7 жыл бұрын
Благодарю!
@bakaproductionsempai7591
@bakaproductionsempai7591 5 жыл бұрын
Если бы компилятор мог снимать уроки, ты бы составил ему конкуренцию)) Очень без воды , очень доступно ) Вот бы видос еще про реализацию виртуального конструктора))
@lightseeker745
@lightseeker745 Жыл бұрын
Ахахахахахахх, угарный комм)))
@artlinestudio6735
@artlinestudio6735 3 жыл бұрын
Обязательный, душевный лайк, за очень полезный урок! Большое спасибо! Сергей, пожалуйста возобновите уроки по С++. Смотрим по второму разу, хочется продолжения, узнать, чем же там закончится дело! Столько лет ждем с верой и правдой. Пожалуйста!
@ShiphonalPluto
@ShiphonalPluto 5 ай бұрын
explicit TypeInfo(T1 value) : TypeSize(value){} в CLion работает только так (8:53) cout
@Ermine882
@Ermine882 7 жыл бұрын
Спасибо за урок.
@ВадимКлимов-й1щ
@ВадимКлимов-й1щ 4 жыл бұрын
Уже год как работаю программистом С++. Начинал с этого канала) Рад, что он так вырос. Был здесь еще при 10к подписчиков.
@TM-kz4hm
@TM-kz4hm 4 жыл бұрын
Что научился делать,когда прошел все уроки?:D
@asankod8549
@asankod8549 3 жыл бұрын
дай советы ))
@wantonhatch867
@wantonhatch867 3 жыл бұрын
@@TM-kz4hm видимо научился, раз работает программистом
@romankuznetsov4601
@romankuznetsov4601 2 жыл бұрын
@@TM-kz4hm очевидно он научился писать код на плюсах =)
@segars9604
@segars9604 Жыл бұрын
Спасибо за бесценный труд!)
@DmitryDolganov
@DmitryDolganov 5 жыл бұрын
Сергей, спасибо!
@АндрейМиненко-ц3з
@АндрейМиненко-ц3з 6 жыл бұрын
Спасибо за урок
@akkh6971
@akkh6971 2 жыл бұрын
Большое спасибо за такой труд!
@Antonov_Ivan.
@Antonov_Ivan. 11 ай бұрын
Спасибо за урок!
@medetkhanaltynbek1442
@medetkhanaltynbek1442 3 жыл бұрын
Очень интересный был урок и супер полезный! Благодарю!!!
@mykhailomorhal2181
@mykhailomorhal2181 6 жыл бұрын
Спасибо=)
@user_x138
@user_x138 3 жыл бұрын
Сработало только так: 1) В методе ShowTypeName поле value работает только через указатель this; 2) При делегировании конструктора класcа TypeName синтаксис указания конструктора базового класса выглядит так: TypeSize(value) Спасибо парням ниже. Сергей ты лучший( пишешь так чтобы нам еще и голову приходилось включать). Только вот вопрос: как у тебя все работает?
@gavyttop1341
@gavyttop1341 3 жыл бұрын
цыганская магия
@romankuznetsov4601
@romankuznetsov4601 2 жыл бұрын
у него IDE от MicroSoft, с компилятором от них же, а МС любит свои велосипеды совать туда, куда не следует
@lovxxs
@lovxxs Жыл бұрын
Ну ты и тупень, я в шоке. Видео пятилетней давности, а ты пишешь спустя 3 года. Теперь включаем мозг и понимаем, что у вас разные версии студии.
@Orange_999
@Orange_999 Ай бұрын
Комментарии всегда выручают:)
@go5190
@go5190 7 жыл бұрын
Спасибо!
@noiseless6800
@noiseless6800 6 жыл бұрын
Как всегда все хорошо, но было пару нестыковок, спасибо коментаторам.
@C2H5OHH
@C2H5OHH 3 жыл бұрын
Thank you for the lesson!
@neverhoodJK
@neverhoodJK 6 жыл бұрын
Все понятно, большое спасибо! только все равно ничего не понятно... Лайк, как всегда, за отличную работу!
@СергейРохин-и1ш
@СергейРохин-и1ш 3 жыл бұрын
Отличные уроки. Один недостаток - слишком подробно, до такой степени, что смотреть можно с любой серии! ))))
@alexey104
@alexey104 5 жыл бұрын
Нелишним было бы отметить, что конструкция 'template' должна также использоваться при определении методов шаблонного класса вне тела этого класса.
@ilmi6805
@ilmi6805 5 жыл бұрын
строка 71 на видео cout
@Kokurorokuko
@Kokurorokuko 3 жыл бұрын
Прохожусь отладчиком. Передаю в конструктор по умолчанию число 3. Навожусь на поле value типа T в базовом классе. Там почему-то сразу после захода в конструктор класса-наследника лежит число 3, хоть инициализация ещё не произошло, мы ещё даже не перешли в конструктор базового класса. Как так может быть? Если навестись на this->value в класе родителе, то там появлятся тройка только инициализации, то есть всё правильно.
@АртёмПичкур-о4с
@АртёмПичкур-о4с 3 жыл бұрын
Боже, я до конца верил что ошибся сам, к счастью люди в комментариях помогли, спасибо
@psyxodolby08
@psyxodolby08 6 жыл бұрын
typeid(value).name() VS2017 ругается таки Ошибка C2228: выражение слева от ".name" должно представлять класс, структуру или объединение ClassTemplates
@timurortskhanov8527
@timurortskhanov8527 6 жыл бұрын
Берлога Neo здравствуйте. Ответьте пожалуйста вы решили эту проблему. Если да то как. У меня тоже компилятор не видит переменную value и ругаеться
@vladalu9794
@vladalu9794 6 жыл бұрын
я решил данную проблему перетащив метод ShowTypeName() в базовый класс TypeSize, тогда работает, может есть и более эффективные пути))
@vladalu9794
@vladalu9794 6 жыл бұрын
может быть стоит поиграть с ключевым словом friend, но у меня таким образом ничего не вышло( А вообще странно, что у Сереги работает, а у меня в той же студии 2017 не работает, где подвох?
@timurortskhanov8527
@timurortskhanov8527 6 жыл бұрын
Vladislav Trubin Я сделал так же. Но хотел как автор. Видать не судьба. Спасибо Вам.
@vladalu9794
@vladalu9794 6 жыл бұрын
Товарищи до меня дошло нужно писать вот так: void ShowTypeName() { cout
@liudasliudelis9666
@liudasliudelis9666 6 жыл бұрын
Dėkui
@newprogram9391
@newprogram9391 7 жыл бұрын
Добрый день, хотел спросить слышали ли что нибуть о квантовом программировании? Про то что компания М-А-Й-Крософт(пишу так из-за того, что ютуб удаляет автоматически мой комментарий, если там есть слово microsoft) выпустила новый quantum development kit для разработки на совершенно новом виде комп'ютеров - квантовых. Они выпустили новый язык программирования (q#) и симуляцию 30 кубитов для разработки, и это все для давно знакомого нам VS! Скажите чо думаете? Думаю перспективы у этой штуки гигантские. Можете посмотреть на официальном сайт MS. Спасибо за уроки!
@programmingprofi778
@programmingprofi778 7 жыл бұрын
Интересно. Думаю стоит посмотреть, хотя пока кубити можно хранить только при очень низких температурах.
@newprogram9391
@newprogram9391 7 жыл бұрын
Думаю их будут улучшать со временем, пока не будут достаточно стойкими, чтобы не распадаться. Когда транзисторы в обычних комп'ютерах дойдут до уровня атома, тогда и будут квантовые комп'ютеры, хотя чтото мне подсказывает, что будут они значительно раньше.
@myos8891
@myos8891 7 жыл бұрын
За этим будущее. Хотя нужно еще подождать.
@myos8891
@myos8891 7 жыл бұрын
Они, я думаю сначала будут применяться в сложных вычислениях, космосе, машинном обучении, BigData, а потом уже будут в каждом доме. Возможно к тому времени появятся ещё новые области кроме вышеперечисленных в которых он будет использоваться. Вообщем ждём.
@myos8891
@myos8891 7 жыл бұрын
Кстати майкрософтт сказал, что код написанный на Q# на обычном комп'ютере будет работать и на квантовом, так как там будет симуляция этих самих кубитов, но там этот девелопмент кит надо отдельно скачивать и ставить на vs.
@ЯрославГоловко-ф6и
@ЯрославГоловко-ф6и 4 жыл бұрын
спасибо
@Ivan-Shyriaiev
@Ivan-Shyriaiev 4 жыл бұрын
В базовых классах все переменные записывал в приват секцию. А в классах наследниках чтобы поменять эти переменные, писал Базовыйклас::GetVariable(); А оказывается через protected: секцию можно -___-
@_imperial_6762
@_imperial_6762 6 жыл бұрын
Код не работает!
@pavelios3577
@pavelios3577 6 жыл бұрын
Уважаемые, почему-то код не работает, перебрал все варианты, предложенные ниже. #include не влияет ни как. Пишет ошибка: . Может кто понял в чём дело, буду благодарен за ответ. Может работа VS 17 зависит от винта, у меня установлена 64-разрядная операционная система. И вообще, ерунда какая-то: шаблон должен быть один. а тут один шаблон появился и тут же ещё куча их и полная неразбериха, неудивительно.
@denned4192
@denned4192 4 жыл бұрын
такая же ерунда
@PixelArtCode
@PixelArtCode 5 ай бұрын
Тип данных не выводится, как в видео. Только $ и первая буква типа. В пользовательских типах $ и имя типа
@Kokurorokuko
@Kokurorokuko 3 жыл бұрын
Как я понимаю, тип T в классе родителе и тип T в классе наследнике - это разные типы?
@ТимерланБатаев
@ТимерланБатаев 2 жыл бұрын
Шаблоны разные, да.
@andrewbistroff1199
@andrewbistroff1199 6 жыл бұрын
Спасибо за урок!(на VS 17 не работает)
@timurortskhanov8527
@timurortskhanov8527 6 жыл бұрын
Andrei Bistroff это точно? На VS 2017 не как не получиться?
@yourownazog8069
@yourownazog8069 6 жыл бұрын
@@timurortskhanov8527 получится, нужно немного изменить код!
@Куся-ч9я
@Куся-ч9я 3 жыл бұрын
У меня какого-то чёрта вызывается конструктор по умолчанию класса Point на моменте вызова конструктора класса-предка TypeSize. А если бы работали с динамической памятью, произошла бы утечка. На видео подобной проблемы нет. В чем дело?
@Куся-ч9я
@Куся-ч9я 3 жыл бұрын
Всё, до меня дошло. Компилятор же должен сначала создать объект класса Point в памяти, куда мы будем присваивать this->value = value. Ему сначала нужно определить this->value, чтобы туда всунуть ту точку, которую мы передаем. Вдруг кого тоже эта мысль замучала во время прохода с отладчиком)
@denned4192
@denned4192 4 жыл бұрын
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
@ivanrozb
@ivanrozb 3 жыл бұрын
cout
@i4q236
@i4q236 7 жыл бұрын
Аффтар жжот!!! ))))))))))))))
@shestak.E
@shestak.E 2 жыл бұрын
Наследование конструктора не работает теперь!!!!! И при попутке использовать тип string ошибка чтения символов 🤦‍♂
@ДмитрийБайков-щ9б
@ДмитрийБайков-щ9б Жыл бұрын
У меня даже так не работает
@pavelios3577
@pavelios3577 6 жыл бұрын
Спасибо за урок.
@RomanGadiev
@RomanGadiev 4 жыл бұрын
Спасибо за урок
@ВітяКоміссаров
@ВітяКоміссаров 2 жыл бұрын
спасибо
Creative Justice at the Checkout: Bananas and Eggs Showdown #shorts
00:18
Fabiosa Best Lifehacks
Рет қаралды 33 МЛН
Do you love Blackpink?🖤🩷
00:23
Karina
Рет қаралды 23 МЛН
One day.. 🙌
00:33
Celine Dept
Рет қаралды 63 МЛН
Global Variables in C++... not as easy as it seems
18:25
The Cherno
Рет қаралды 66 М.
Михаил Матросов - Спецификаторы, квалификаторы и шаблоны
58:55
Конференция по разработке на C++
Рет қаралды 15 М.