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

Поділитися
Вставка
  • Опубліковано 7 лют 2025
  • How to implement dynamic binding (i.e. dynamic polymorphism) with virtual member functions in C++. Source code: github.com/por.... Check out www.portfolioc... to build a portfolio that will impress employers!

КОМЕНТАРІ • 18

  • @dwivedys
    @dwivedys 8 місяців тому +1

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

  • @FluxSentor
    @FluxSentor Рік тому +3

    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 роки тому +2

    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 5 місяців тому +1

    very impressive!🥰

  • @CrabRango
    @CrabRango 10 місяців тому +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 2 роки тому +1

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

    • @PortfolioCourses
      @PortfolioCourses  2 роки тому

      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 2 роки тому

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

    • @PortfolioCourses
      @PortfolioCourses  2 роки тому

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

  • @shafayet0198
    @shafayet0198 2 роки тому

    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  2 роки тому

      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 2 роки тому

      @@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. :-)