Тёмный

Виртуальные методы класса c++. Ключевое слово virtual. Ключевое слово override. ООП. C++  

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

Понравилось видео или оказалось полезным? Подпишись!
Если вам нравятся мои уроки, вы хотите поддержать меня и развитие канала, то можете сделать это тут! =)
www.donationalerts.ru/r/simple...
или тут
/ simplecode
Виртуальные методы класса c++. Ключевое слово virtual Ключевое слово override. ООП C++ Для начинающих #103
Указатели c++ что это. Для чего нужны. Указатели c++ разыменование. C++ для начинающих. Урок #46
goo.gl/fysKKg
Указатель на функцию в качестве параметра. Передача функции в качестве параметра. С++ Урок #65
goo.gl/w97yi9
Уроки по программированию
Наша группа ВК smplcode
Подписывайтесь на канал / @simplecodeit

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

 

30 окт 2017

Поделиться:

Ссылка:

Скачать:

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

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 253   
@SimpleCodeIT
@SimpleCodeIT 6 лет назад
*Друзья, если вы решили изучать программирование и подписались на канал - рекомендую вам нажать колокольчик чтобы никогда не пропускать новые уроки!*
@user-xl9py5hr7i
@user-xl9py5hr7i 4 года назад
Посмотрел.Через 20 минут, я и тараканы начали аплодировать. Спасибо вам за качественное обьяснение на понятных примитивах.
@shohoch7800
@shohoch7800 5 лет назад
Афигеть. Тебя смотрят серьезные ребята. Три слова бэнг и ни одной шутки про батю в здании.
@sergeyvoloshin1553
@sergeyvoloshin1553 4 года назад
Акстись
@SaffronChipMCPE
@SaffronChipMCPE 3 года назад
BADABOOM P.S. Есть песня русская - бадабум
@dankn6155
@dankn6155 2 года назад
батя теперь в совсем другом здании)
@DigitRoach
@DigitRoach 2 года назад
@@dankn6155 школьники умерли ещё на массивах и на строках в стиле "C"
@user-bm9lb1zu9i
@user-bm9lb1zu9i 2 года назад
@@DigitRoach школьники, которые смотрели клипы Хованского, уже давно не школьники)))
@gnot7900
@gnot7900 11 месяцев назад
Передаю респект всем кто не забросил и дошёл до этого урока + автору за хорошее обучение. Я перешёл сюда с платного курса C++ Developer потому что хоть там и профессионалы, далеко не каждый сможет подробно и понятно объяснить материал (Там за 30 минут объяснили 10+ уроков Сергея😂)
@francheeze
@francheeze 9 месяцев назад
То чувство когда половина уроков уже позади
@HessW
@HessW 9 месяцев назад
​​@@francheezeно это только база C++, а впереди ещё учить библиотеки, системы сборки, работу с сетями, deep learning, computer science.
@francheeze
@francheeze 9 месяцев назад
@@HessW да знаю я, знаю, просто жалко
@sergbo5509
@sergbo5509 5 лет назад
Из слов в начале можно сделать вывод что virtual определяет полиморфизм в С++. Но если его не использовать то поведение в дочерних классах тоже переопределяется, это тоже подходит под описание полиморфизм. Разница лишь в том, что без виртуала вызовется функция которая определена типом переменной, если она не определена в классе потомке, то вызовется функция базового класса. А вот если с вируалом, то вызывается функция которая определена типом объекта(не типом переменной как в первом случае). А если вирутальная функция не переопределена в потомке, поиск продолжается в базовом классе. Где-то я читал как работает ключевое слово virtual на уровне машинного кода. Без указания virtual адрес функции сразу записывается в инструкцию машинного кода. А если с указан virtual, то адрес входа в функцию вычисляется из таблицы виртуальных методов которая содержится в адресном пространстве самого объекта. Как-то так.
@SimpleCodeIT
@SimpleCodeIT 6 лет назад
Виртуальные методы класса c++. Ключевое слово virtual Ключевое слово override. ООП C++ Для начинающих #103
@Binitto001
@Binitto001 3 года назад
Слов не хватает что бы выразить свою благодарность! 3 часа ебли мозгов на лекции в универе и нихуя не понятно, а здесь все понял за 20 минут, без воды и по делу.
@user-ny4zk7gj7n
@user-ny4zk7gj7n 3 месяца назад
оххх! ПОЛИМОРФИЗМ - ЭТО ПРОСТО БОМБА!!! ОГРОМНАЯ БЛАГОДАРНОСТЬ СЕРГЕЮ ЗА ДОХОДЧИВОЕ ОБЪЯСНЕНИЕ СТОЛЬ СЛОЖНОГО МАТЕРИАЛА!!!!
@andrewbistroff1199
@andrewbistroff1199 6 лет назад
Спасибо Сергей за просто и понятно изложенный материал !
@SimpleCodeIT
@SimpleCodeIT 6 лет назад
Пожалуйста!
@proKaps
@proKaps 6 лет назад
Очень хорошее объяснение! Спасибо!
@vielavernus7026
@vielavernus7026 Месяц назад
Искал хороший урок, а нашёл золотую жилу! Спасибо большое за ваши уроки!
@user-qu8wx1li5c
@user-qu8wx1li5c 6 лет назад
Спасибо большое, хорошо объясняете, и нравится что раскладываете все темы по кусочкам, удобно смотреть и понимать.
@SimpleCodeIT
@SimpleCodeIT 6 лет назад
Пожалуйста!
@rib0385
@rib0385 6 лет назад
Спасибо за уроки,благодаря вам закрыл программирование в универе
@SimpleCodeIT
@SimpleCodeIT 6 лет назад
Пожалуйста!
@SaffronChipMCPE
@SaffronChipMCPE 3 года назад
как успехи?) Где начал работать?
@rib0385
@rib0385 3 года назад
@@SaffronChipMCPE уже год как в сбертехе
@SaffronChipMCPE
@SaffronChipMCPE 3 года назад
@@rib0385 поздравляю! :D
@SaffronChipMCPE
@SaffronChipMCPE 3 года назад
@@rib0385 ого, за 1 год уже добрался до сбертеха :/
@UnknownPerson-nf8ml
@UnknownPerson-nf8ml 6 лет назад
очень полезно было. Спасибо, я аж засмотрелся
@simplyspenser887
@simplyspenser887 5 лет назад
Великолепный урок, спасибо огромное. Вроде аж 20 минут, но посмотрел на одном дыхании:)
@SaffronChipMCPE
@SaffronChipMCPE 3 года назад
даже не заметил, как время прошло
@SimpleCodeIT
@SimpleCodeIT 6 лет назад
#virtual #override #ООП #SimpleCode #урокипрограммирования
@book_riot
@book_riot 2 месяца назад
Спасибо за объяснение, зачем это нужно! Очень помогает не сдаваться))
@hitman8102
@hitman8102 5 лет назад
Я хз почему так мало у вас подписчиков , вы реально заслуживаете больше подписчиков . Я хочу на курсы и смотрю вас и все понимаю , спасибо вам
@Ermine882
@Ermine882 6 лет назад
Спасибо за урок.
@user-jl7et8gx5u
@user-jl7et8gx5u 6 лет назад
Спасибо. Все ясно и понятно.
@user-bc4vi6hl2f
@user-bc4vi6hl2f 6 лет назад
Очередное Спасибо!
@user-ko3yq7xu9p
@user-ko3yq7xu9p 4 года назад
Очень крутые примеры! Несколько раз хотел нажать лайк, но он уже стоит:)
@natasha1059
@natasha1059 4 года назад
большое спасибо за продуманные, информативные видеоуроки! благодаря ним нашла ответы на многие интересующие вопросы и продолжаю пополнять свои знания в области программирования на с++
@brffclips1
@brffclips1 4 года назад
РЕБЯТ НЕ ЛЕНИТЕСЬ ПЕРЕСМАТРИВАТЬ. ОЧЕНЬ СИЛЬНО ПОМОГАЕТ(КАПСОМ ТАК КАК ОЧЕНЬ ВАЖНО)
@SaffronChipMCPE
@SaffronChipMCPE 3 года назад
согласен, я лично уже забыл урок про указатель на функцию
@user-fv3uy2px1b
@user-fv3uy2px1b 2 года назад
Иду по второму кругу, это нормально, повторение мать учения, далее если надо третий, ну а ещё далее точечно по темам которые срочно нужны
@user-or1hy4xz8u
@user-or1hy4xz8u 2 года назад
@@user-fv3uy2px1b срочно нужны к экзамену?
@user-fv3uy2px1b
@user-fv3uy2px1b 2 года назад
@@user-or1hy4xz8u нет, просто фанатею, нравится
@_Yes_.
@_Yes_. Год назад
@@user-fv3uy2px1b ровытагптукпотщуплтукщпткерекрпкпкупкуркуртть
@segars9604
@segars9604 9 месяцев назад
Благодарю за бесценную работу!
@user-kc8dw8ou9s
@user-kc8dw8ou9s 5 лет назад
Рассказывает всё то что именно нужно без воды, классно
@user-ut7tj6bp4t
@user-ut7tj6bp4t 4 года назад
Один из самых интересных уроков)))
@the_fallen_knight5596
@the_fallen_knight5596 4 года назад
Отличный канал !!!!!Просто и понятно объяснил все С++ . Спасибо
@user-nw5iw5ew9z
@user-nw5iw5ew9z 3 года назад
Огромное спасибо, Сергей, очень интересно и доходчиво!
@Danshyn
@Danshyn 5 лет назад
Отличный урок, особенно объяснение на реальном примере ;)
@aleksey220280
@aleksey220280 2 года назад
Спасибо! Такого толкового пояснения полиморфизма не встречал, многе стало на места.
@sgimancs
@sgimancs 5 лет назад
Но кто же ставит дизлайки. Это могут здесь специально делать только "враги народа и вредители не из той оперы". Как здесь, еще никто не смог доступно и детально объяснить непростые вещи из плюсов с идеальной дикцией и эрудицией .
@monke7336
@monke7336 3 года назад
Чтобы его видео наверно в рекомендациях не появлялись
@dezign_er
@dezign_er 6 лет назад
Огромное спасибо за видео!
@timursyrma
@timursyrma 3 года назад
Комментарий для поддержки канала. Спасибо за Ваши видео, очень все предельно ясно!
@mahpexm6995
@mahpexm6995 2 года назад
Спасибо! Очень доходчивые и понятные объяснения)
@user-os5ee2fg9d
@user-os5ee2fg9d 5 лет назад
Спасибо за Вашу работу!
@kaynsolo
@kaynsolo 6 лет назад
Все чётко, без воды..
@boyjak7205
@boyjak7205 5 лет назад
Спасибо за качественные уроки
@user-ol9es1ch9x
@user-ol9es1ch9x Год назад
привет из 2023. Спасибо большое за уроки!
@vovantorpeda
@vovantorpeda Год назад
поддерживаю!!! уроки всегда на высоте )
@user-xj9re7gv5g
@user-xj9re7gv5g 10 месяцев назад
Важный и понятный урок. Сергей, спасибо большое!!!
@user-zn6uk1dn6q
@user-zn6uk1dn6q Год назад
Отдельное спасибо за объяснение того, для чего virtual и override необходимы!
@nap0le0nb0naparte7
@nap0le0nb0naparte7 6 лет назад
Интересный урок, спасибо.
@apchike-masala
@apchike-masala 3 года назад
Наполеон! А ну марш в торт обратно! Ты наказан!
@PyleNormis
@PyleNormis 2 года назад
Комментарий создан для продвижения видео! Спасибо, Сергей!
@SeshAlex
@SeshAlex 6 лет назад
Спасибо за урок, чем дальше тем интереснее:)))
@denisplotnikov2202
@denisplotnikov2202 5 лет назад
Спасибо преогромное. Итак под всеми видео поставил лайки. Но конкретно это с данными примерами очень хорошо зашло. По большей части закрываю пробелы с Вашими видео. Но, чувствую, только сейчас, после Ваших уроков, начинает складываться целостная картина. А то уже расстраивался от недопонимания многих вещей. Сейчас же огромный стимул двигаться дальше.
@borisermolaev3158
@borisermolaev3158 5 лет назад
Хорошо, что я нашел ваш канал.
@minsk150
@minsk150 3 года назад
Гениальное обьяснение!!!!! СПАСИБО!!!!
@Cyanidez07
@Cyanidez07 3 года назад
Автор - большое вам спасибо!
@kemsekov6331
@kemsekov6331 4 года назад
Это тот самый контент, который будет актуален всегда, но или пока живо программирование)
@vladalu9794
@vladalu9794 6 лет назад
спасибо огромное бро!!! все понятно рассказал!
@ilyakardapoltsev8225
@ilyakardapoltsev8225 6 лет назад
спасибо за урок
@SimpleCodeIT
@SimpleCodeIT 6 лет назад
Пожалуйста!
@sergbo5509
@sergbo5509 5 лет назад
А еще я бы подчеркнул именно тот момент, что во время присвоения Gun *gun=&submachinegun; Не смотря на то что тип переменной меняется, тип объекта на который указывает ссылка типа Gun, по прежнему остается типа SubmachineGun. Даже не смотря что список методов при обращении к этой ссылке может быть другой, это не значит что методы куда-то делись, просто через данную ссылку они не доступны. Так вот если член-функции имеют одинаковую сигнатуру, какую функцию Shoot вызывать? Из типа ссылки(Gun) или из типа объекта(SubmachineGun)? По умолчанию вызывается из типа ссылки, а при наличии ключевого слова virtual, вызывается функция из типа объекта. Вот где магия)
@mar_kha
@mar_kha 2 года назад
Потрясающий ролик! Начинаешь (хотя бы на примитивном уровне) понимать, как осуществляли действия в любимых играх детства
@Asmarone
@Asmarone 7 месяцев назад
скинь свой тг
@vnaqr
@vnaqr 5 лет назад
Помогите, я зависим... Это просто так интересноо
@jewelkz
@jewelkz 4 года назад
Прекрасное объяснение!
@tupoy_ytub_uberi_psevdonim
@tupoy_ytub_uberi_psevdonim 2 года назад
твои видеоуроки заменяют целую учебную программу
@CrazyHandMaker
@CrazyHandMaker Год назад
Полезный урок. Спасибо.
@user-zx5st3fq7x
@user-zx5st3fq7x 4 года назад
Шикарно обьяснил , красава!!
@medetkhanaltynbek1442
@medetkhanaltynbek1442 3 года назад
Благодарю за урок учитель! :)
@mr.deadwish1666
@mr.deadwish1666 7 месяцев назад
Вот кто переводит в сериалах Gun как "пистолет", а не "Пушка/ствол/огнестрел"! Смотрю вас ещё со школы, лучший контент
@Antonov_Ivan.
@Antonov_Ivan. 7 месяцев назад
Спасибо за урок!
@pahimself
@pahimself 2 года назад
лучше обьяснений не встречал. рад познакомиться.
@sergbo5509
@sergbo5509 5 лет назад
За уроки по любому лайк!
@vladimirdiadichev6140
@vladimirdiadichev6140 6 лет назад
Спасибо
@zheniarudchyk4285
@zheniarudchyk4285 5 лет назад
#SimpleCode , как всегда на высоте :) , но замечание нужно было сказать что указатель на базовый клас не имеет доступа к индивидуальним свойствам класса наследника ибо сбивает с толку как указатель на базовый клас может взаимодействовать с производным классом!!!(не обращайте внимание на ошибки не русский)
@user-ry3fx3pd5h
@user-ry3fx3pd5h 5 лет назад
После ваших уроков кресты постепенно перестают быть неподъёмной "магией". Большое спасибо!
@totosha2860
@totosha2860 5 лет назад
Спасибо большое!
@overdoses1794
@overdoses1794 6 лет назад
void Overdoses(*Thank you){cout
@anotherpain9120
@anotherpain9120 Год назад
По кайфу, благодарствую!
@Ivan-Shyriaiev
@Ivan-Shyriaiev 4 года назад
Спасибо *большущее* !
@beezowdoodoozopittybopbopbop
@beezowdoodoozopittybopbopbop 3 года назад
Пример с оружием просто пушкабомбапетарда, однозначно лайк:)
@whynot3052
@whynot3052 6 лет назад
#SimpleCode спасибо
@lennoxmacduff2037
@lennoxmacduff2037 6 лет назад
Если мы у SMG вызовем метод Shoot и не передадим туда параметров, то пистолет-пулемёт выстрелит нам в ногу XD
@igorpoznyakov5486
@igorpoznyakov5486 4 года назад
Крутой урок!!!
@Hitori_FtoL
@Hitori_FtoL 5 лет назад
Лучший!
@seregapikulev9834
@seregapikulev9834 4 года назад
Спасибо!
@Kokurorokuko
@Kokurorokuko 3 года назад
Получается в уроке #98, где был студент и студент-заочник, у которых был метод Learn(), мы неправильно писали реализацию? То есть всегда надо писать virtual и override, если переопределяется метод? Или есть случаи, когда не надо писать это?
@saidamir6538
@saidamir6538 2 года назад
Я думаю да, просто опускали для простоты. В таком случае мы не сможем пользоваться полиморфизмом (фишкой с указателями) как Сергей показал
@radvanabazin2299
@radvanabazin2299 3 года назад
Молодец во всем !!!
@mykhailomorhal2181
@mykhailomorhal2181 6 лет назад
Спасибо)
@kirkmanChannel
@kirkmanChannel 4 года назад
Супер!
@rettjaconomaili8201
@rettjaconomaili8201 6 лет назад
Спасибо!!!
@thick_milk
@thick_milk 3 года назад
ОФИГЕННО!
@user-uw4bj2uz5l
@user-uw4bj2uz5l 4 года назад
бооооже, это же ааааахуенно. и уроки, и полиморфизм. это... тупа топ. прекрасное изложение. суперлайк !
@aram.nett1
@aram.nett1 6 лет назад
Спасибо братан
@panschindler9370
@panschindler9370 4 года назад
BADABOOM!!! Спасибо, за урок!!!:)
@pavelnovikov3894
@pavelnovikov3894 2 года назад
Удобная тема
@pavelnovikov3894
@pavelnovikov3894 2 года назад
СПАСИБО ЗА ТРУД
@user-iy7nj4is4n
@user-iy7nj4is4n 9 месяцев назад
Браво 👏 👏 👏 👏 👏
@user-je5yr6ol6c
@user-je5yr6ol6c 6 лет назад
Будут ли в будущем уроки, с поддержкой библиотеки SDL, либо других графических биб. ? И вообще, будем ли делать начиная с мини-игр, до более менее качественных 3D ?✊
@kemsekov6331
@kemsekov6331 4 года назад
Про STL уже есть(следующие пару месяцев сам планирую потратить на увлекательный просмотр всего этого добра) А про игры не знаю. Наверно уже и игры есть, раз наш родной SimpleCode уже по c# уроки делает)
@Kokurorokuko
@Kokurorokuko 3 года назад
@@kemsekov6331 sdl, а не stl
@NONAME-wb7fv
@NONAME-wb7fv 9 месяцев назад
STL, а не SDL
@user-je5yr6ol6c
@user-je5yr6ol6c 9 месяцев назад
@@NONAME-wb7fv наконец-то дождался ответа)
@user-vu5xo7qr8r
@user-vu5xo7qr8r 2 года назад
Дякую! Вже 103 уроки позаду, ух)
@scolopendrachilopoda9704
@scolopendrachilopoda9704 3 года назад
пока смотрел сошел с ума два раза, спасибо
@user-hb7er4ff9u
@user-hb7er4ff9u 2 года назад
спасибо
@alexyounger.b
@alexyounger.b 4 года назад
Лучший!!
@user-ji7it9xd7x
@user-ji7it9xd7x 3 года назад
Думаю по принципу, как бы строгой иерархии, если мы заходим ссылаемся через главный вход родительского класса, мы с тем же успехом попадем в нужную нам квартиру, у которой своя особая реализация(полиморфизм) как если бы мы шли туда напрямую, через балкон, окно или вертолетную площадку. То есть мы получим "Bang! Bang! Bang". Все зависит от адреса взятого класса, и наличия ключевого слова virtual.
@Mar_doK
@Mar_doK 2 года назад
Лично для меня это трудно понять, но думаю после через некоторое количество попыток и обдумывания этой информации я смогу понять суть виртуальных функций. Я знаю как этим пользоваться, но не понимаю самой сути данного функционала. Спасибо за урок.
@anatolyvatson2542
@anatolyvatson2542 Год назад
Такая же история. Надо просто со временем подойти к этому, на подсознании есть флаг что такое есть рано или поздно он сработает
@sleepyNovember_project
@sleepyNovember_project 4 месяца назад
@@anatolyvatson2542 ну как успехи? =)
@TheWladberlin
@TheWladberlin 4 года назад
Спасибо за "задолбаемся"! 18:40 :)
@arkanruler1593
@arkanruler1593 5 лет назад
На примере компьютерной игры в разы понятнее. Спасибо!!!
@deniskozak5997
@deniskozak5997 6 лет назад
13:40 это явление называется ранним связыванием или статической типизацией? Расскажите про эти понятия?
@vnaqr
@vnaqr 5 лет назад
Кстати, в проге, которую написал Сергей, возможен случай, когда Player может стрелять объектами Player. xD
@pubgr862
@pubgr862 5 лет назад
Vova Nahirny считай бьет кулаками👌
@EvgeniyChurikov
@EvgeniyChurikov 5 лет назад
Невозможен. Так как метод принимает указатель только на класс Gun и унаследованные от него. И сигнатура у метода другая.
@sleepyNovember_project
@sleepyNovember_project 4 месяца назад
После уроков про перегрузки операторов, это как отдых
@TopConductor
@TopConductor 2 года назад
Очень хорошие уроки! Одно но, стоило метод в классе Player назвать как-то иначе чем Shoot(), иначе возможно новички могут подумать что они должны обязательно называться одинаково для полиморфизма.
Далее
Раннее и Позднее Связывание
12:44
Dragon Age: The Veilguard | Official Reveal Trailer
02:08
Хэш-таблицы за 10 минут
13:01
Просмотров 120 тыс.
Полиморфизм на практике
10:42
Просмотров 177 тыс.