Комментарии:
Друзья, если вы решили изучать программирование и подписались на канал - рекомендую вам нажать колокольчик чтобы никогда не пропускать новые уроки!
ОтветитьБлагодарю за бесценную работу!
ОтветитьБраво 👏 👏 👏 👏 👏
ОтветитьВажный и понятный урок. Сергей, спасибо большое!!!
ОтветитьПередаю респект всем кто не забросил и дошёл до этого урока + автору за хорошее обучение. Я перешёл сюда с платного курса C++ Developer потому что хоть там и профессионалы, далеко не каждый сможет подробно и понятно объяснить материал (Там за 30 минут объяснили 10+ уроков Сергея😂)
ОтветитьMagic
ОтветитьПолезный урок. Спасибо.
Ответитьпривет из 2023. Спасибо большое за уроки!
Ответитьдля тех кто не понял: " класс C наследуется от B , класс В в свою очередь от класса А, класс C является(is) классом B и классом A одновременно"
ОтветитьПо кайфу, благодарствую!
ОтветитьЯ так понимаю это альтернатива интерфейсу?
Ответить+++++
ОтветитьОтдельное спасибо за объяснение того, для чего virtual и override необходимы!
ОтветитьЛучше уроков по C++ на русском языке просто не существует
ОтветитьПОдскажите, где прочесть: почему в классе игрока вызываем метод через '->', а не через '.' Почему не проходит gun.Shoot();
ОтветитьКорбен Даллас пультипаспорт , BigBadaboom)
ОтветитьПотрясающий ролик! Начинаешь (хотя бы на примитивном уровне) понимать, как осуществляли действия в любимых играх детства
Ответитьчел хватит говорить "так же само", "точно так же" бляять
Ответитьесли не писать virtual и override вроде все так же работает же, переопределяется, не?
upd: аа все понял досмотрев :D
Дякую! Вже 103 уроки позаду, ух)
ОтветитьСпасибо! Очень доходчивые и понятные объяснения)
Ответитьспасибо
ОтветитьСпасибо! Такого толкового пояснения полиморфизма не встречал, многе стало на места.
ОтветитьА почему BANG! BANG! BANG! , а не RATATATATATATATA?
ОтветитьА полностью виртуальный класс может в себе содержать переменные? Или только функции?
ОтветитьОчень хорошие уроки!
Одно но, стоило метод в классе Player назвать как-то иначе чем Shoot(), иначе возможно новички могут подумать что они должны обязательно называться одинаково для полиморфизма.
Реализовал так же только с настройками для звука гитары, мол чистый звук, дисторшн, овердрайв)
Ответитьлучше обьяснений не встречал. рад познакомиться.
Ответитьтвои видеоуроки заменяют целую учебную программу
ОтветитьКомментарий
ОтветитьКомментарий
ОтветитьЛично для меня это трудно понять, но думаю после через некоторое количество попыток и обдумывания этой информации я смогу понять суть виртуальных функций. Я знаю как этим пользоваться, но не понимаю самой сути данного функционала. Спасибо за урок.
ОтветитьСпасибо!!!
ОтветитьКомментарий создан для продвижения видео! Спасибо, Сергей!
Ответить++
ОтветитьУдобная тема
ОтветитьОФИГЕННО!
ОтветитьВ то время Yanderedev: "Зачем нужен полиморфизм, если есть else if ?"
ОтветитьДля тех, кто не понял, запустите этот код и поймёте, в чём разница. Метод 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;
}
Получается в уроке #98, где был студент и студент-заочник, у которых был метод Learn(), мы неправильно писали реализацию? То есть всегда надо писать virtual и override, если переопределяется метод? Или есть случаи, когда не надо писать это?
ОтветитьСпасибо за уроки все супер! На черном фоне очень плохо видно, делайте черным по белому пожалуйста!
Ответитьне понятно, только то, что будет если выделить массив обьектов класса gun?
ОтветитьБлагодарю за урок учитель! :)
Ответитьпока смотрел сошел с ума два раза, спасибо
ОтветитьКомментарий для поддержки канала.
Спасибо за Ваши видео, очень все предельно ясно!
А чем отличается gun -> Shoot();
от gun.Shoot???
Огромное спасибо, Сергей, очень интересно и доходчиво!
ОтветитьА как же шаблонные функции? С их помощью вроде можно реализовать тоже самое просто класс игрока shoot сделать шаблонным, или так не получиться?
ОтветитьСпасибо)
ОтветитьПочему мы не можем вызвать ф-ю gun->Shoot() ( только gun.Shoot() ), а указатель weapon можем вызвать так weapon->Shoot()?
Ответить