Dynamic Binding (Polymorphism) With The Virtual Keyword | C++ Tutorial

Поделиться
HTML-код
  • Опубликовано: 23 ноя 2024

Комментарии • 18

  • @dwivedys
    @dwivedys 6 месяцев назад +1

    This is the best video on static and dynamic polymorphism I have seen among here on YT

  • @FluxSentor
    @FluxSentor Год назад +2

    This was such a boon to find. I've been lurking for a while since starting school for computer science. You've really been a help, thanks for explaining so many topics!

    • @PortfolioCourses
      @PortfolioCourses  Год назад

      You're welcome, I'm really glad to hear the videos have been helpful! :-)

  • @MohitRaj-1712
    @MohitRaj-1712 2 года назад +1

    Your videos on OOP topics help me a lot.

    • @PortfolioCourses
      @PortfolioCourses  2 года назад

      I'm very glad to hear that they help you Mohit, thank you for sharing that! :-D

  • @visual_NN
    @visual_NN 2 месяца назад +1

    very impressive!🥰

  • @CrabRango
    @CrabRango 8 месяцев назад +1

    Would you only need to apply the virtual keyword to the base class member function? Or are there cases in which you would need to apply it to derived class member functions?

  • @ValliNayagamChokkalingam
    @ValliNayagamChokkalingam Год назад +1

    Thanks! I thought that polymorphism just meant that the derived class could be used to access member functions and variables of the parent class. So, in our array with student object pointers, when we create space for medical student object instances, is space for all the member variables of medical student allocated or just the name variable? Thanks! Also, if a function returns a reference to something like "&int add()", just returning an int in the actual function's code is enough right? The compiler will convert the returned int to an int reference, right?

    • @PortfolioCourses
      @PortfolioCourses  Год назад

      Space for all the member variables will be allocated. If you try returning a constant int like '5' from a function "int& add()" then it should produce an error.

  • @shafayet0198
    @shafayet0198 Год назад +1

    why polymorphism does not work if I make the array on the stack instead of on the heap?

    • @PortfolioCourses
      @PortfolioCourses  Год назад

      That's a really good question Akash but the answer may be a bit long for a commnet. Some of these answers here explain why polymorphism works with pointers/references: stackoverflow.com/questions/15188894/why-doesnt-polymorphism-work-without-pointers-references. :-)

    • @shafayet0198
      @shafayet0198 Год назад

      @@PortfolioCourses I'm still not fully clear, I would be grateful if you made a video to clarify this topic

    • @PortfolioCourses
      @PortfolioCourses  Год назад

      @@shafayet0198 Maybe one day I can do that! 🙂

  • @shafayet0198
    @shafayet0198 Год назад

    if I have a chain of drive class like a semi-diamond and the very bottom class has the base class 3 times do I have to use virtual in all the drived class?

    • @PortfolioCourses
      @PortfolioCourses  Год назад

      My understanding is that in the derived classes, the member functions will be virtual whether we use virtual or not because they are virtual in the base class: stackoverflow.com/questions/58042421/c-multi-level-inheritance-with-virtual-functions.

    • @shafayet0198
      @shafayet0198 Год назад

      @@PortfolioCourses I was not taking about that , I meant ambiguity problem.
      #include
      using namespace std;
      template
      class sim_calculator
      {
      public:
      T x, y;
      void get()
      {
      cout > x >> y;
      }
      void calculate()
      {
      cout

  • @germankoga8640
    @germankoga8640 Год назад

    So basically what the virtual keyword does is override the default behavior of a base class function so when polymorphism is in place child clases use their own versions?

    • @PortfolioCourses
      @PortfolioCourses  Год назад +1

      Yes, that's basically the idea. The virtual keyword allows derived classes to override the behaviour of the virtual base class method to achieve dynamic aka "runtime" polymorphism. :-)