Абстрактный класс с++ пример. Чисто виртуальная функция. virtual. override. Полиморфизм ООП C++

แชร์
ฝัง
  • เผยแพร่เมื่อ 19 ก.ย. 2024
  • Понравилось видео или оказалось полезным? Подпишись!
    Если вам нравятся мои уроки, вы хотите поддержать меня и развитие канала, то можете сделать это тут! =)
    www.donationale...
    или тут
    / simplecode
    Абстрактный класс с++ пример. Чисто виртуальная функция. virtual. override. Полиморфизм ООП C++ Для начинающих. Урок #104
    Исходный код урока:
    topic-1...
    Виртуальные методы класса c++. Ключевое слово virtual. Ключевое слово override. ООП. C++ #103
    goo.gl/cuW4cY
    Уроки по программированию
    Наша группа ВК smplcode
    Подписывайтесь на канал / @simplecodeit

ความคิดเห็น • 175

  • @SimpleCodeIT
    @SimpleCodeIT  6 ปีที่แล้ว +65

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

    • @ОлегЖариков-ь1ы
      @ОлегЖариков-ь1ы 6 ปีที่แล้ว +1

      Будут ли в будущем уроки, с поддержкой библиотеки SDL, либо других графических биб. ? И вообще, будем ли делать начиная с мини-игр, до более менее качественных 3D ?✊

    • @deniskozak5997
      @deniskozak5997 6 ปีที่แล้ว +3

      лучше чем-то более серьезным заниматься, нежели игрушками

    • @ОлегЖариков-ь1ы
      @ОлегЖариков-ь1ы 6 ปีที่แล้ว +2

      Еще вопрос, разработка нейро-сетей на ЯП - C++ , будет ? Ведь, на нем тоже можно их разрабатывать, чтобы уже более-менее понимать структуру и их алгоритм.

    • @bobrovskij100
      @bobrovskij100 4 ปีที่แล้ว

      Снимите, пожалуйста, видео о том, как разделять проект на файлы и как это всё подключать между собой, как подключать сторонние библиотеки, создавать свои, или просто как подключить готовый класс к проекту. Как пользоваться hex-редакторами и cmake для С++.

    • @elemantro5257
      @elemantro5257 4 ปีที่แล้ว

      мне кажется или это паттерн стратегия?

  • @Chepotay
    @Chepotay 6 ปีที่แล้ว +56

    Вжух! И я вспомнил как работают абстрактные классы в С++.

    • @SimpleCodeIT
      @SimpleCodeIT  6 ปีที่แล้ว +12

      Всё правильно понял! =)

  • @proKaps
    @proKaps 6 ปีที่แล้ว +254

    Годнота. Это самые лучшие уроки вообще которые я когда-либо встречал. Правда смотрю на скорости 1.5 х)

    • @iryandriver
      @iryandriver 5 ปีที่แล้ว +16

      Чайники на 0.25 смотрят))

    • @developer-miracle
      @developer-miracle 5 ปีที่แล้ว +8

      а я с обычной скоростью, но только ставлю на паузу, чтоб повторить все действия в IDE ;)

    • @РайанКупер-э4о
      @РайанКупер-э4о 4 ปีที่แล้ว +5

      ×2

    • @romasenkevich9907
      @romasenkevich9907 3 ปีที่แล้ว

      Райан Купер можно смотреть в х4, но это нужно будет в код ютуба лезть в гугл хроме

    • @Kokurorokuko
      @Kokurorokuko 3 ปีที่แล้ว +1

      @@developer-miracle как по мне, лучше сначала посмотреть, а потом писать код самому. Заодно и проверяешь, как запомнил.

  • @kaynsolo
    @kaynsolo 6 ปีที่แล้ว +55

    Тема с оружием крутяк! Спасибо.

  • @DenKof81
    @DenKof81 5 ปีที่แล้ว +83

    От кофемолки до ножа всего за 31 VJUHHH! :)

  • @Володимир-ы4к
    @Володимир-ы4к 5 ปีที่แล้ว +42

    Мужик, ты просто лучший, только благодоря тебе я захотел стать программистом (и у меня это получается) и меня не выперли с универа. Самые топовые уроки по программированию.

    • @nazarmarhotskiy7372
      @nazarmarhotskiy7372 5 ปีที่แล้ว +1

      +

    • @Matissed
      @Matissed 3 ปีที่แล้ว +3

      как успехи?

    • @mrgold8267
      @mrgold8267 ปีที่แล้ว +2

      Ну вот уже 3 года прошло, стал прогером? где работаешь, кем работаешь ?

  • @SeshAlex
    @SeshAlex 6 ปีที่แล้ว +60

    Спасибо. Вы лучший педагог с++:)))

  • @ТищенкоЕвгений-ж2э
    @ТищенкоЕвгений-ж2э 6 หลายเดือนก่อน +2

    Кайф, спасибо за отличное объяснение

  • @Azantys-w6h
    @Azantys-w6h ปีที่แล้ว +10

    Дружище, у тебя есть талант объяснять людям непонятные вещи на понятных примерах. Всё очень доходчиво. Надеюсь ты вернешься на TH-cam и будешь дальше использовать свой талант в просветительских целях. Желаю удачи.

  • @user-ne6dt8gv3o
    @user-ne6dt8gv3o 4 ปีที่แล้ว +8

    Лучшие уроки по программированию во вселенной!

  • @Riderwin
    @Riderwin 6 ปีที่แล้ว +65

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

    • @MrMes
      @MrMes 4 ปีที่แล้ว +1

      аххахахаха, то есть ты не можешь в проводнике в IDE добавить файлы и в файле, где нужен функционал написать инклюды?

    • @rednil8242
      @rednil8242 4 ปีที่แล้ว +22

      @@MrMes все думают, что это легко, пока пару книг по теме не почитают.

    • @Matissed
      @Matissed 3 ปีที่แล้ว +17

      @@rednil8242 забей, это ебаные токсики, думающие, что они дохуя знающие программисты

    • @_Yes_.
      @_Yes_. 2 ปีที่แล้ว +2

      @@MrMes чел

    • @princessmary5556
      @princessmary5556 ปีที่แล้ว

      @@rednil8242 И прочитав пару книг, понимают, что это ещё проще, чем казалось вначале.

  • @Salavat1k
    @Salavat1k 5 ปีที่แล้ว +47

    . class Player
    |
    class Weapon (virtual)
    | | |
    class Gun class Bazooka class Knife
    |
    class SubMashineGun
    Получается так:
    - класс "Игрок" содержит функцию "Стрелять",
    - соответственно возникает вопрос "чем стрелять?" и в функции производится обращение к абстрактному классу "Оружие" .
    - у класса три наследника пистолет, базука, нож, а у пистолета наследник пулемет. Через наследование передаются все свойства класса "оружие".
    - В майн создается объект "игрок", вызывается функция "стрелять" в ней указывается на оружие вообще, а потом уточняется то, чем именно действовать.
    Т.о. получается, что виртуальный класс просто служит для предварительного указания, того, что с оружием будет производится какое то действие в классах наследниках, а само действие зависит от типа выбранного оружия.
    Ок. надеюсь понял правильно. Спасибо.

  • @nazarmarhotskiy7372
    @nazarmarhotskiy7372 5 ปีที่แล้ว +15

    Контент просто супер. Твои уроки не раз спасали меня когда не знал как лабораторку сделать. Спасибо огромное.

  • @tsohee9145
    @tsohee9145 5 ปีที่แล้ว +5

    Вы настолько хорошо объясняете, что я на прошлом уроке уже что то похожее написал, правда вместо виртуальной сделал просто пустую функцию. Все и так работает.

  • @Ermine882
    @Ermine882 6 ปีที่แล้ว +23

    Спасибо за урок.

  • @veter4699
    @veter4699 6 ปีที่แล้ว +21

    Очередной раз спасибо за интересный урок!

  • @minsk150
    @minsk150 4 ปีที่แล้ว +4

    НЕ перестаю радоваться! как суперски все обьясняется! Спасибо снова!

  • @alexlyt9104
    @alexlyt9104 6 ปีที่แล้ว +26

    Ті по поводу примеров правильно говориш, твоя история про игру змейка супер. Сделай раздел практикум. Давай в разделе по порядку сделаем с начала консольную, потом виндозную, потом сетевую и т.д. как ті рассказывал. Донат должен быть хорошим.

  • @ТимурАсадуллин-ш8ч
    @ТимурАсадуллин-ш8ч 6 ปีที่แล้ว +14

    прекрасное изложение. лайкаю все подряд. желаю Вашем каналу успеха

    • @SimpleCodeIT
      @SimpleCodeIT  6 ปีที่แล้ว +4

      Благодарю за поддержку!

  • @tesalovskiy
    @tesalovskiy 5 ปีที่แล้ว +4

    Спасибо за отличный урок! После просмотра мысли и правда собираются в одно единое знание, которое не стыдно попробовать на практике.

  • @SimpleCodeIT
    @SimpleCodeIT  6 ปีที่แล้ว +17

    #абстрактныйкласс #чистовиртуальнаяфункция #ООП #SimpleCode #урокипрограммирования

  • @dezign_er
    @dezign_er 6 ปีที่แล้ว +17

    Спасибо за видео !

  • @mira_mira_mira28
    @mira_mira_mira28 4 ปีที่แล้ว +3

    Эти уроки просто спасают меня перед экзаменом!!! Спасибо большое

  • @meatboy4010
    @meatboy4010 6 ปีที่แล้ว +3

    Перед курсачем по ООП - самое то!

  • @user-ny4zk7gj7n
    @user-ny4zk7gj7n 6 หลายเดือนก่อน +1

    ООП - это красота!🤩

  • @МаксимХоменко-з2э
    @МаксимХоменко-з2э 5 ปีที่แล้ว +3

    супер, все очень понятно. Спасибо за классную работу.

  • @moratoPg
    @moratoPg 6 ปีที่แล้ว +6

    Дуже хороший урок , і взагалі всі уроки мають прекрасне розяснення . Спочатку трохи здається все запутаним бо багато англійськомовних слів і невидно всього коду на екрані , але якщо переглянути пару разів то вимальовується більш зрозуміла логіка того що автор відео хоче передати . Перед уроком бажано доповідати які знання вже потрібно мати щоб зрозуміти дане відео Дякую за уроки , взагалі прекрасна подача інформації , всім раджу переглядати дані відео декілька разів щоб краще усвоїти конкретну тему уроку

    • @llllNEOllllchannel
      @llllNEOllllchannel 6 ปีที่แล้ว +3

      ??? зачем этот c++, лучше буду украинский учить

    • @null_user1227
      @null_user1227 4 ปีที่แล้ว

      @@llllNEOllllchannel Выучил?

    • @llllNEOllllchannel
      @llllNEOllllchannel 4 ปีที่แล้ว

      @@null_user1227 дi

  • @vladimirdiadichev6140
    @vladimirdiadichev6140 6 ปีที่แล้ว +14

    Спасибо

  • @riinariina41
    @riinariina41 5 ปีที่แล้ว +2

    Огромное спасибо за уроки. Очень помогают

  • @user-jl7et8gx5u
    @user-jl7et8gx5u 6 ปีที่แล้ว +7

    Спасибо за уроки

  • @Phocusnick
    @Phocusnick 2 ปีที่แล้ว +1

    Это просто идеально, тем-более во время дистанционки.

  • @ГусейнСалахов
    @ГусейнСалахов 4 ปีที่แล้ว +2

    Я был неправ, ЭТО самый интересный урок из плейлиста, а не предыдущий))

  • @vladalu9794
    @vladalu9794 6 ปีที่แล้ว +2

    Очень интересный урок, большое спасибо!!!

  • @satisfiedCapybara
    @satisfiedCapybara 5 ปีที่แล้ว +2

    Спасибо большое за ваши старания!

  • @bulba1995
    @bulba1995 2 ปีที่แล้ว +1

    Еще один хороший урок ,мое почтение.

  • @kaisaryerdenbekov1588
    @kaisaryerdenbekov1588 6 ปีที่แล้ว +45

    Кто-то влепил чисто абстрактный дизлайк.

  • @АндрейМиненко-ц3з
    @АндрейМиненко-ц3з 6 ปีที่แล้ว +4

    Спасибо за урок!

  • @sgimancs
    @sgimancs 5 ปีที่แล้ว +18

    Это конкуренты с их барахлом похоже ставят дизлайки т. к. до этого уровня изложения не тянут.

    • @pilipzero1149
      @pilipzero1149 23 วันที่ผ่านมา

      учителя информатики потому что сами ничего непонимают

  • @simanerush
    @simanerush 5 ปีที่แล้ว +2

    Спасибо огромное!

  • @segars9604
    @segars9604 ปีที่แล้ว

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

  • @deniskozak5997
    @deniskozak5997 6 ปีที่แล้ว +10

    спасибо за урок, будет ли видео урок про то чем абстрактный класс отличается от интерфейса и что такое интерфейс?

  • @justcode5626
    @justcode5626 3 ปีที่แล้ว +2

    Четко получилось!

  • @konstantingorskiy5716
    @konstantingorskiy5716 5 ปีที่แล้ว +1

    Чувак, просто супер видосы , в универе очень помогает

  • @garivasiukov1897
    @garivasiukov1897 6 หลายเดือนก่อน

    лучший, спасибо большое, очень помог!!!)))

  • @Cyanidez07
    @Cyanidez07 3 ปีที่แล้ว +1

    круто! потренировался со своими классами+ попробовал передать в функцию массив адресов по ссылке используя std::vector.

  • @ДмитрийБузницкий-б3н
    @ДмитрийБузницкий-б3н 3 ปีที่แล้ว

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

  • @Ivan-Shyriaiev
    @Ivan-Shyriaiev 4 ปีที่แล้ว +4

    Круть! Сделал пару штук
    #include
    #include
    #include
    #include
    #define cls system("cls")
    #define gtch _getch()
    using namespace std;
    void colorText(int color);
    class Transport
    {
    public:
    Transport()
    {
    name = "noname";
    }
    Transport(string name)
    {
    this->name = name;
    }
    string getName()
    {
    return name;
    }
    void setName(string name)
    {
    this->name = name;
    }
    virtual void ride() = 0;
    virtual void info() = 0;
    private:
    string name;
    };
    class Sportcar :public Transport
    {
    class Engine;
    public:
    Sportcar() :Transport()
    {
    engine.turnEngineOff();
    }
    Sportcar(string name) :Transport(name)
    {
    }
    void turnEngineOn()
    {
    engine.turnEngineOn();
    }
    void turnEngineOff()
    {
    engine.turnEngineOff();
    }
    void coutEngineInfo()
    {
    engine.showEngine();
    }
    void ride() override
    {
    if (engine.boolWorking())
    cout

    • @cnota69
      @cnota69 3 ปีที่แล้ว +1

      Хах, прикольно чел. Интересно было почитать историю)

    • @ruslandad365
      @ruslandad365 11 หลายเดือนก่อน

      Нихрена тебя понесло)

  • @Ivan-Shyriaiev
    @Ivan-Shyriaiev 4 ปีที่แล้ว

    *ТОП* Уроки ! Спасибо большое!

  • @Жожобажожоно
    @Жожобажожоно ปีที่แล้ว

    Вы легенда!

  • @yugenepopov2014
    @yugenepopov2014 10 หลายเดือนก่อน

    Огромнейшее спасибо

  • @lizagodaeva4678
    @lizagodaeva4678 4 ปีที่แล้ว

    Вы великолепны, спасибо!

  • @ЕленаИванова-ь5и4ж
    @ЕленаИванова-ь5и4ж 3 ปีที่แล้ว

    Спасибо! Просто и ясно.

  • @McGewen
    @McGewen ปีที่แล้ว

    Круто!Дуже вдячний!

  • @seredas3565
    @seredas3565 ปีที่แล้ว

    Спасибо за рекомендацию отладчика, без него было сложнее
    годные советы)

  • @NikolaiAdmiralov
    @NikolaiAdmiralov ปีที่แล้ว

    Лучший ❤

  • @sergbo3114
    @sergbo3114 4 ปีที่แล้ว +1

    Вот недавно в процессе написания одного из классов зачудил. При отладке выяснил что при вызове виртуальной функции вызывается не функция в потомке, что как бы было должно быть при переопределении в дочернем классе, а вызывалась функция в базовом. И когда я убрал пустую реализацию из базового класса, то Runtime начал выдавать ошибку "abort()". Оказалось, по невнимательности я вызывал эту функцию из конструктора)) Получалось что класс еще был не сконструирован. Т.е. как раз получилось тот случай "что будет если инстанцировать абстрактный класс", ну в данном случае просто виртуальную функцию, но я думаю разница не большая. Получится просто рантайм еррор.

  • @seregapikulev9834
    @seregapikulev9834 5 ปีที่แล้ว +1

    Спасибо!

  • @t.on.y
    @t.on.y 6 ปีที่แล้ว +30

    а ты расскажешь про win32 api?

    • @exploserester6041
      @exploserester6041 2 ปีที่แล้ว

      Это для интерфейса? Если да, лучше используй Qt)

  • @ruslandad365
    @ruslandad365 11 หลายเดือนก่อน +1

    Ляяя
    Теперь я начинаю понимать как работает Анрил

  • @ivanliaz
    @ivanliaz 6 หลายเดือนก่อน +1

    Ну вот и геймдев пошёл))

  • @shestak.E
    @shestak.E ปีที่แล้ว +1

    Чисто теоретически можно такой вид программы реализовать с помощью функции с вложенным switch

    • @sleepyNovember_project
      @sleepyNovember_project 8 หลายเดือนก่อน

      А с if else так вообще всё возможно xd

  • @kirillkirillov9786
    @kirillkirillov9786 3 ปีที่แล้ว

    Спасибо за урок

  • @evgeniisharaborin8071
    @evgeniisharaborin8071 2 ปีที่แล้ว

    Спасибо за крутое объяснение)

  • @Mark-wn4op
    @Mark-wn4op 3 ปีที่แล้ว

    Скорость x2 и это просто лучшие видео

  • @bama2619
    @bama2619 3 ปีที่แล้ว

    Спасибо Все понятно

  • @annademidenko6356
    @annademidenko6356 6 ปีที่แล้ว +3

  • @OXEED12
    @OXEED12 4 หลายเดือนก่อน +1

    👍

  • @user-ld3gf1tl1f
    @user-ld3gf1tl1f 5 หลายเดือนก่อน

    бро даже в 2024 году твои уроки имбире

  • @ОлегЖариков-ь1ы
    @ОлегЖариков-ь1ы 6 ปีที่แล้ว +6

    Будут ли в будущем уроки, с поддержкой библиотеки SDL, либо других графических биб. ? И вообще, будем ли делать начиная с мини-игр, до более менее качественных 3D ?✊

    • @SimpleCodeIT
      @SimpleCodeIT  6 ปีที่แล้ว +5

      Игры будут в отдалённом будущем на Unity.

    • @ОлегЖариков-ь1ы
      @ОлегЖариков-ь1ы 6 ปีที่แล้ว +2

      Еще вопрос, разработка нейро-сетей на ЯП - C++ , будет ? Ведь, на нем тоже можно их разрабатывать, чтобы уже более-менее понимать структуру и их алгоритм.

  • @user-ol9es1ch9x
    @user-ol9es1ch9x ปีที่แล้ว

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

  • @stenzoautomatic
    @stenzoautomatic 9 หลายเดือนก่อน +2

    Красавчик, Серёга ты как там? Жив, здоров? Отзовись ( если что то он с Украины, и говорил что из-за войны пока не сможет поддерживать канал). Или может кто в курсе как он? Жалею что у меня не было такого препода!!!

  • @arismendi7101
    @arismendi7101 6 ปีที่แล้ว +2

    Здраствуйте, можете сделать видео о рандомной генерации лабиринта с помощью рекурсивной функции?

  • @Nikitunr2013
    @Nikitunr2013 2 ปีที่แล้ว

    В разы понятнее объясняешь, чем преподы большого универа

  • @Serhii-s4c
    @Serhii-s4c ปีที่แล้ว

    Спасибо брат

  • @bat_bsv
    @bat_bsv 10 หลายเดือนก่อน

    напоминает создание конфига вооружения в ARMA 2

  • @Viamsupervadetvadens
    @Viamsupervadetvadens 6 ปีที่แล้ว +4

    up

  • @flatmapper
    @flatmapper 6 ปีที่แล้ว +1

    Нам в универе говорят, что существует 2 вида полиморфизма : времени компиляции и времени выполнения. Какой в данном уроке показываете вы?

  • @gagikarakelyan6014
    @gagikarakelyan6014 4 ปีที่แล้ว

    лучший

  • @ИванНовожилов-э9з
    @ИванНовожилов-э9з 3 ปีที่แล้ว

    вжууух - и мы переопределили виртуальную функцию

  • @nokompromis2297
    @nokompromis2297 5 ปีที่แล้ว +2

    Knife.Shoot()...Нож же и шпионский бывает...

  • @dimaan29
    @dimaan29 4 ปีที่แล้ว

    Тема с оружием достаточно наглядна до тех пор, пока не появляются указатели (геморр). По вашим урокам учу С#, то есть все ваши уроки на С++ перевожу в С#, только вот беда, указатели никак не хотят работать в этом майкрософтовском языке, даже через режим unsafe. Поэтому никак не могу заставить класс Player работать со всеми видами оружия на C#

  • @flepjack
    @flepjack 3 ปีที่แล้ว

    Понято

  • @WormsWolf1
    @WormsWolf1 6 ปีที่แล้ว +1

    Немного не понял как будут деструкторы вызываться. У класса Weapon будет вызван деструктор или нет?

  • @ekaterina1991
    @ekaterina1991 6 ปีที่แล้ว

    Спасибо огромное, Сергей. Подскажите, пожалуйста, а как лучше в main реализовывать смену оружия? С помощью просто switch или есть более грамотная реализация?

    • @TheWladberlin
      @TheWladberlin 4 ปีที่แล้ว +1

      Массив указателей, думаю

  • @KocTu4eK
    @KocTu4eK 2 ปีที่แล้ว

    в прошлом уроке сильно не хватает пэинта (имхо), пришлось самому додумывать «кто такой этот ваш полеморфизм» на ходу урока, что очень отвлекало

  • @GottyMintly
    @GottyMintly 3 ปีที่แล้ว

    Разработчик: потеет несколько дней, работая над кодом для шутера.
    Пистолет: стреляет
    Пистолет-пулемет: стреляет
    Гранатомёт: стрелеят
    Нож: доброе утро))0)

  • @ДмитрийРоманчук-д2н
    @ДмитрийРоманчук-д2н 4 ปีที่แล้ว

    Сергей, а вы с Unreal Engine знакомы?

  • @noname7949-j3n
    @noname7949-j3n 6 ปีที่แล้ว +3

    а зачем тогда нужно слово abstract?

    • @SaffronChipMCPE
      @SaffronChipMCPE 4 ปีที่แล้ว

      оно пришло, скорее всего, из языка C. Ведь C++ берёт свои корни из него, просто он лучше

    • @princessmary5556
      @princessmary5556 ปีที่แล้ว

      @@SaffronChipMCPE Бред

    • @princessmary5556
      @princessmary5556 ปีที่แล้ว

      Одиночное слово abstract ни зачем не нужно. В с++ применяется термин abstract class, который обозначает класс, в котором есть хотя бы одна чисто-виртуальная функция.

  • @tolegator2623
    @tolegator2623 2 ปีที่แล้ว

    А можно в абстрактном родительском классе объявить статическое поле? Оно будет доступно всем потомкам?

  • @alexeytrofimov2232
    @alexeytrofimov2232 3 ปีที่แล้ว

    ✊🏻

  • @mariasparrow5965
    @mariasparrow5965 4 ปีที่แล้ว

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

  • @user-ni9tf5yr6m
    @user-ni9tf5yr6m 4 ปีที่แล้ว

    Уууу !Террорист ! Взрывать людей учишь (Like❤)

  • @user-pashaspr
    @user-pashaspr 3 ปีที่แล้ว

    Прикольно,если туда пули как то пристроить)

  • @alexandrsargsyan2202
    @alexandrsargsyan2202 2 ปีที่แล้ว

    like

  • @rachelraichi9494
    @rachelraichi9494 ปีที่แล้ว

    14:07 я сначала подумала, что напишет stab😅

    • @sleepyNovember_project
      @sleepyNovember_project 8 หลายเดือนก่อน

      Ну получается стреляем ножами, тоже вполне себе неплохо

  • @Max-hc8we
    @Max-hc8we 5 ปีที่แล้ว

    Можете объяснить в чём смысл абстрактного класса? Ведь с тем же успехом я могу написать:
    class Weapon {
    public:
    void virtual Shoot( ){ }
    };
    Это будет виртуальный метод без реализации. Согласен, будет возможность создать объект данного класса, но тогда, опять же, можно не писать никакой реализации

    • @TheWladberlin
      @TheWladberlin 4 ปีที่แล้ว +2

      Я думаю просто для удобства. Смысл объединить под одним классом какую-то область - в данном случае это "оружие". И далее в классе Player ты обращаешься только к этому классу.

    • @serzhant7169
      @serzhant7169 4 ปีที่แล้ว +3

      В том то и дело что нам нужен класс от которого нельзя создавать объекты. Это тебе сейчас хорошо, что у тебя метод возвращает void и ты просто написал { }, а если метод будет не void? Будешь писать return что-то? костыль получается

  • @mulahivan
    @mulahivan 3 ปีที่แล้ว

    Ну, не сложно

  • @Vov4ik048
    @Vov4ik048 3 ปีที่แล้ว

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

  • @user-fo9qs5nt1z
    @user-fo9qs5nt1z 6 ปีที่แล้ว +1

    что такое экземпляр класса? Я забыл!

    • @СправаФея
      @СправаФея 6 ปีที่แล้ว +1

      то же, что и объект класса,

  • @CLangMole
    @CLangMole 8 หลายเดือนก่อน

    А почему вы передаёте класс в параметры по указателю?

    • @sleepyNovember_project
      @sleepyNovember_project 8 หลายเดือนก่อน

      Автор вряд-ли ответит
      Возможно чтобы не плодить копии.
      По идее, если объект будет передаваться без указателя (если компилятор вообще позволяет)
      То там уже создастся копия, а это лишняя инициализация новой копии.
      Я так понял

    • @sleepyNovember_project
      @sleepyNovember_project 8 หลายเดือนก่อน

      И да, передаётся же объект класса

    • @CLangMole
      @CLangMole 8 หลายเดือนก่อน

      @@sleepyNovember_project почему он не передаёт по ссылке? По факту же это то же самое, только там не надо использовать оператор разименования.

    • @sleepyNovember_project
      @sleepyNovember_project 8 หลายเดือนก่อน

      @@CLangMole Ну да, в этом случае можно было бы в принципе и по ссылке. Если опять же, правильно понимаю, передавать указатель имеется больше смысла, когда надо использовать арифметику указателей, или когда надо его переназначить на другой объект или переменную (но тут уже надо передавать (точнее в аргументах принимать) ссылку на указатель).