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

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

#SimpleCode

6 лет назад

181,040 Просмотров

Ссылки и html тэги не поддерживаются


Комментарии:

#SimpleCode
#SimpleCode - 31.10.2017 18:38

Друзья, если вы решили изучать программирование и подписались на канал - рекомендую вам нажать колокольчик чтобы никогда не пропускать новые уроки!

Ответить
SEGARS
SEGARS - 11.09.2023 09:45

Благодарю за бесценную работу!

Ответить
ВладОся
ВладОся - 16.08.2023 09:01

Браво 👏 👏 👏 👏 👏

Ответить
Андрей Тоцкий
Андрей Тоцкий - 06.08.2023 14:14

Важный и понятный урок. Сергей, спасибо большое!!!

Ответить
gnot
gnot - 07.07.2023 20:47

Передаю респект всем кто не забросил и дошёл до этого урока + автору за хорошее обучение. Я перешёл сюда с платного курса C++ Developer потому что хоть там и профессионалы, далеко не каждый сможет подробно и понятно объяснить материал (Там за 30 минут объяснили 10+ уроков Сергея😂)

Ответить
Daps
Daps - 23.04.2023 16:23

Magic

Ответить
Безумный Рукодел
Безумный Рукодел - 06.04.2023 20:45

Полезный урок. Спасибо.

Ответить
Иван Козловский
Иван Козловский - 06.02.2023 17:31

привет из 2023. Спасибо большое за уроки!

Ответить
Daniel LUKO
Daniel LUKO - 27.01.2023 17:23

для тех кто не понял: " класс C наследуется от B , класс В в свою очередь от класса А, класс C является(is) классом B и классом A одновременно"

Ответить
Another Pain
Another Pain - 16.11.2022 22:40

По кайфу, благодарствую!

Ответить
Mighty Minds
Mighty Minds - 07.11.2022 16:03

Я так понимаю это альтернатива интерфейсу?

Ответить
Николай Овчинников
Николай Овчинников - 17.10.2022 13:57

+++++

Ответить
Андрей Судаков
Андрей Судаков - 15.08.2022 17:08

Отдельное спасибо за объяснение того, для чего virtual и override необходимы!

Ответить
Mr Madmer
Mr Madmer - 03.08.2022 13:41

Лучше уроков по C++ на русском языке просто не существует

Ответить
Владимир Карпутов
Владимир Карпутов - 07.07.2022 16:54

ПОдскажите, где прочесть: почему в классе игрока вызываем метод через '->', а не через '.' Почему не проходит gun.Shoot();

Ответить
#Sova_ Ptica
#Sova_ Ptica - 06.07.2022 16:02

Корбен Даллас пультипаспорт , BigBadaboom)

Ответить
Марина Хабибулина
Марина Хабибулина - 29.05.2022 00:27

Потрясающий ролик! Начинаешь (хотя бы на примитивном уровне) понимать, как осуществляли действия в любимых играх детства

Ответить
0x3
0x3 - 16.05.2022 22:10

чел хватит говорить "так же само", "точно так же" бляять

Ответить
Saidamir
Saidamir - 20.04.2022 01:47

если не писать virtual и override вроде все так же работает же, переопределяется, не?

upd: аа все понял досмотрев :D

Ответить
Настя Войтенко
Настя Войтенко - 14.04.2022 19:29

Дякую! Вже 103 уроки позаду, ух)

Ответить
MahpexM
MahpexM - 23.03.2022 14:59

Спасибо! Очень доходчивые и понятные объяснения)

Ответить
Вітя Коміссаров
Вітя Коміссаров - 05.02.2022 19:50

спасибо

Ответить
Алексей
Алексей - 25.01.2022 11:35

Спасибо! Такого толкового пояснения полиморфизма не встречал, многе стало на места.

Ответить
Павел Воронин
Павел Воронин - 08.01.2022 10:12

А почему BANG! BANG! BANG! , а не RATATATATATATATA?

Ответить
Kharitone
Kharitone - 02.01.2022 02:00

А полностью виртуальный класс может в себе содержать переменные? Или только функции?

Ответить
Andrii Kuibarov
Andrii Kuibarov - 28.12.2021 23:06

Очень хорошие уроки!
Одно но, стоило метод в классе Player назвать как-то иначе чем Shoot(), иначе возможно новички могут подумать что они должны обязательно называться одинаково для полиморфизма.

Ответить
Сергей Назаров
Сергей Назаров - 22.12.2021 19:02

Реализовал так же только с настройками для звука гитары, мол чистый звук, дисторшн, овердрайв)

Ответить
Pavel
Pavel - 14.12.2021 15:59

лучше обьяснений не встречал. рад познакомиться.

Ответить
Adam Prakapovich
Adam Prakapovich - 26.11.2021 16:07

твои видеоуроки заменяют целую учебную программу

Ответить
YYMDD
YYMDD - 28.10.2021 13:18

Комментарий

Ответить
YYMDD
YYMDD - 28.10.2021 13:15

Комментарий

Ответить
Escape from Tarkov с бомжом!
Escape from Tarkov с бомжом! - 15.10.2021 12:16

Лично для меня это трудно понять, но думаю после через некоторое количество попыток и обдумывания этой информации я смогу понять суть виртуальных функций. Я знаю как этим пользоваться, но не понимаю самой сути данного функционала. Спасибо за урок.

Ответить
Miroslav Klyukovsky
Miroslav Klyukovsky - 10.10.2021 23:09

Спасибо!!!

Ответить
Владимир Ленин
Владимир Ленин - 05.09.2021 14:19

Комментарий создан для продвижения видео! Спасибо, Сергей!

Ответить
Человек Свободный
Человек Свободный - 19.08.2021 08:02

++

Ответить
Pavel Novikov
Pavel Novikov - 23.07.2021 21:27

Удобная тема

Ответить
KITFRED
KITFRED - 22.06.2021 17:48

ОФИГЕННО!

Ответить
Edga
Edga - 18.06.2021 13:03

В то время Yanderedev: "Зачем нужен полиморфизм, если есть else if ?"

Ответить
I mean, my opinion doesn't count but
I mean, my opinion doesn't count but - 16.06.2021 18:26

Для тех, кто не понял, запустите этот код и поймёте, в чём разница. Метод Fire здесь виртуальный, а метод Shoot не виртуальный.

class Pistol
{
public:

virtual void Fire()
{
cout << "FIRE" << endl;
}

void Shoot()
{
cout << "BANG" << endl;
}
};

class SMG : public Pistol
{
public:

void Fire() override
{
cout << "FIRE FIRE FIRE" << endl;
}

void Shoot()
{
cout << "BANG BANG BANG" << endl;
}
};


int main()
{
Pistol pistol;
Pistol* pPistol;
SMG smg;

pistol.Fire();
pistol.Shoot();
smg.Fire();
smg.Shoot();
cout << endl << endl;

pPistol = &pistol;
pPistol->Fire();
pPistol->Shoot();

pPistol = &smg;
pPistol->Fire();
pPistol->Shoot();
return 0;
}

Ответить
I mean, my opinion doesn't count but
I mean, my opinion doesn't count but - 16.06.2021 17:52

Получается в уроке #98, где был студент и студент-заочник, у которых был метод Learn(), мы неправильно писали реализацию? То есть всегда надо писать virtual и override, если переопределяется метод? Или есть случаи, когда не надо писать это?

Ответить
NMG
NMG - 16.06.2021 07:22

Спасибо за уроки все супер! На черном фоне очень плохо видно, делайте черным по белому пожалуйста!

Ответить
ASyl
ASyl - 13.06.2021 06:07

не понятно, только то, что будет если выделить массив обьектов класса gun?

Ответить
Medetkhan Altynbek
Medetkhan Altynbek - 28.05.2021 10:43

Благодарю за урок учитель! :)

Ответить
Scolopendra Chilopoda
Scolopendra Chilopoda - 20.05.2021 21:46

пока смотрел сошел с ума два раза, спасибо

Ответить
Timur Syrma
Timur Syrma - 17.05.2021 21:31

Комментарий для поддержки канала.
Спасибо за Ваши видео, очень все предельно ясно!

Ответить
Роман Кудряшов
Роман Кудряшов - 27.04.2021 17:27

А чем отличается gun -> Shoot();
от gun.Shoot???

Ответить
Дмитрий Бузницкий
Дмитрий Бузницкий - 30.03.2021 10:22

Огромное спасибо, Сергей, очень интересно и доходчиво!

Ответить
Ubin Xan
Ubin Xan - 25.03.2021 23:16

А как же шаблонные функции? С их помощью вроде можно реализовать тоже самое просто класс игрока shoot сделать шаблонным, или так не получиться?

Ответить
Dima
Dima - 26.02.2021 22:43

Спасибо)

Ответить
Say Drake
Say Drake - 19.02.2021 06:34

Почему мы не можем вызвать ф-ю gun->Shoot() ( только gun.Shoot() ), а указатель weapon можем вызвать так weapon->Shoot()?

Ответить