Virtual Function In C++
VloĹžit
- Äas pĹidĂĄn 17. 07. 2024
- JOIN ME
-----
CZcams đŹ / @cppnuts
Patreon đ / cppnuts
COMPLETE PLAYLIST
------------
C++ Tutorial For Beginners: ⢠Introduction To C++
STL (Standard Template Library): ⢠STL In C++
ThreadIng In C++: ⢠Multithreading In C++
Data Structures: ⢠Data Structure
Algorithms: ⢠Binary Search
Design Patterns: ⢠Factory Design Pattern...
Smart Pointers: ⢠Smart Pointer In C++
C++14: ⢠Digit Separator In C++
C++17: ⢠std string_view in C++...
C++ All Type Casts: ⢠static_cast In C++
INTERVIEW PLAYLIST
------------
C++ Interview Q&A: ⢠Structural Padding & P...
C++ Interview Q&A For Experienced: ⢠How delete[] Knows How...
Linked List Interview Questions: ⢠Find Kth Node From Bac...
BST Interview Questions: ⢠Search Element In Bina...
Array Interview Questions: ⢠Reverse An Array
String Interview Questions: ⢠Check String Is Palind...
Bit Manipulation Questions: ⢠Find Set Bit In Intege...
Binary Tree Interview Question: ⢠Invert Binary Tree
Sorting Algorithms: ⢠Bubble Sort
C++ MCQ: ⢠Video
C MCQ: ⢠What printf returns af...
C Interview Questions: ⢠Designated Initializat...
QUICK SHORT VIDEOS
-------------
C++ Short : ⢠C++ Short Videos
C Short : ⢠Shorts C Programming MCQ
In this video we will learn about what is virtual function and how to use it in C++.
NOTES:
1. WHY to use virtual function?
a. To achieve dynamic polymorphism. Which is the ability to call Derived class function using Base class pointer or reference.
2. HOW to use virtual function?
a. By declaring function as virtual in Base class and overriding that function in Derived class.
(Function signature should be same in Base and Dervied class)
b. Declaring a function as virtual in Base class is enough, Derived class function need not to be declared virtual.
c. Virtual functions should be accessed using pointer(*) or reference(&) of Base class type to achieve run time polymorphism.
ADITIONAL NOTES:
1. Virtual functions cannot be static and also cannot be a friend function of another class.
2. A class can have virtual destructor but can't have virtual constructor.
3. There are two types of virtual functions in C++.
a. Virtual Function
b. Pure Virtual Function
#cpp #virtualfunction #programming #interviewquestions #softwareengineering #computerscience
After a long time........... Really appreciate your videos.
Thank you so much đ
Always good to see new videos from Rupesh! Virtual is a very important topic in C++
Correct!!
@Seth Trenton no, no-one gives a shit about your lies and malware
@Eufemia Haeber seems to be sockpuppetry and trolling, I think you mean, you pathetic fake
Great video as always, Cppnuts! ;)
Thanks dude...
very good explanation, thank you, keep them like this detailed
Nice informative video, It explains all details in easy way.
thanks
Q1. Which editor you are using ?
Sir, please make a video on pointer to object and object to pointer! We are getting lots of confusion in that portion!
PS- always loved your work! Thank you for this series!
Super...after a long time...we are happy to see
Thanks..
Good to see you back Rupesh :) Just one question in which scenario we need to call the derived function with the base class pointer? Why we are making the base class pointer point to the derived object?
If you want to create an array of different objects you can make their parent common and have array of pointers of those different object and do some operations on a single array.
Let me know if this is not clear, actually I wanted to explain this also in video that why do we need that but I didn't actually find the good example for this.
@@CppNuts not clear , can you make a video :)
Thank you so much. I was very confused, now I got it.
Welcome..
Thanks for making it simple.
Glad it was helpful!
After long time.....good explanation
Thanks..
Hi, Thanks for sharing great videos, i think one statement can be fine tuned...Instead of saying virtual functions can be called with pointers and references only (which implies can't be called by objects), we can say that if we call with objects directly it'll go by static binding and won't get benefits of runtime polymorphism (or) to get the benefits of dynamic behavior call by pointer/reference..please see
Thanks man, but did i said this? I think i always added dynamic word with that line.
Thanks for your c++ series
Glad you like them!
Really appreciate your videos....
Thanks..
Very Informative video....thanks a lot.....again!!!đ
Welcome..
Hey, nice video, maybe you can also explain about vtables and stuff
very informative, thank you
I hope that you will continue the dsa series...
Sure man..
Hi Rupesh Thanks a lot for the video , still I have a doubt why Base * b = derived ()
It's calling base class method, what happens it's storing derived class address but it's calling base class method ,what happens inside and compile time . can you explain
Thanks âşď¸ .... Please guide for competitive coding using CPP
Sure dude..
Let's complete virtual topic first.
@@CppNuts ya please that soon ..... Very curious to start
Hi, Thank you for sharing the video. Can you please share the link for following vptr and vtable video as well.
I prepared notes to teach but i lost it somehow and still i didn't feel like redoing that notes, that was like so much hard work..
Hope i may find courage to redo it and shoot the vid.
congrats for 28k.
Thanks bro..
So what exactly is the use of this virtual functions concept?
In what way is it useful in the real world scenario?
We can call derived function by creating derived object ryt, what exactly the need of calling through the base class pointer?
What if we have a data member in base class lets say float f=1.2; So, can we access b->f iff Base *b = new Derived ?
Yes..
u have to declare that data member as protected ig
Hi đ
Can you please explain, why pointer or reference variable is required for late binding?
Because late binding itself tells that I will be available later, and what ever comes later you have to work on that and this later thing is handled using pointer or reference, because later only these two make sense.
In case of static (current, not the late) meaning you already have the object on which you will work.
@@CppNuts Thank you đ
Hi Rupesh, i tried coding using reference concept for virtual polymorphismâŚit is not working exactly the same wayâŚi mean to say using reference if i try to call the fnâŚby removing virtual keyword in base class, then also last overridden fn gets called instead of base class fn
Give me the code plz.
@@CppNuts hey RupeshâŚmy mistakeâŚi must have been doing some mistakeâŚI tried to run the code again and i see it is working as expectedâŚThanku Rupeshđ
why can only achieve polymorphism(virtual function) through pointers or references,but not through object assignment. pl z solve my doubt sir
class Base{public: virtual f(){}};
class Derived:public Base{public: f(){}};
int main(){Derived d; Base b=d; d.f(); return 0;}
Here f() will be early binding or late binding??
Niceđ
Thanks â
Sir please explain one real time example code in virtual function and pure virtual function
That was so an amazing tutorial...
But I have one doubt, that why we are saying it as "Run-Time Polymorphism",
bcz compiler can easily decide which function he has to call, as we are using "virtual" keyword there, So, at a compile-time, he knows that, "We don't have to call the function in the base class bcz it is using virtual keyword, and we have to call the function from the derived class with the same name", that's simple...........
he can easily decide at a compile-time, why he goes with run-time?
But it can call base class function also.. that's the point.
Base pointer can contain either base object or derived object if it is containing derived object in that case it will call derived class function or if it is holding base class object then it will call base class function.
That's why it is run time behaviour because base pointer can contain either base object or derived object so we really don't know no what object it is going have till run time.
Virtual table ?? Video?
Volume is bit less for all videos.
Correct, i try to avoid noise, so it become like that, i will work on this sound issue. Thanks..
@@CppNuts thank you for all the tutorials
You are welcome..
9:50 Please correct you can give body to pure virtual function.
Yes we can give body to pure virtual function.
*I don't want to become animal!!*
Good
hi @CppNuts i am getting this error cannot find virtual: No such file or directory , c:/users/mani.chaitanya.konka/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find virtual: No such file or directory
c:/users/mani.chaitanya.konka/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find function: No such file or directory