Merge ad1ad87793
into 5ec61cc32f
commit
403f16bd53
1 changed files with 23 additions and 0 deletions
@ -0,0 +1,23 @@ |
|||||||
|
# Virtual Functions in C++ |
||||||
|
|
||||||
|
Virtual functions enable runtime polymorphism in C++, allowing derived classes to override base class behavior. When called via a base pointer/reference, the *actual object's type* determines which function is executed (dynamic dispatch). Non-virtual functions use compile-time resolution based on the pointer/reference type (static dispatch), which prevents overriding. |
||||||
|
|
||||||
|
```cpp |
||||||
|
// Base class with virtual function |
||||||
|
class Animal { |
||||||
|
public: |
||||||
|
virtual void speak() { std::cout << "Generic sound"; } |
||||||
|
}; |
||||||
|
|
||||||
|
// Derived class override |
||||||
|
class Dog : public Animal { |
||||||
|
public: |
||||||
|
void speak() override { std::cout << "Woof!"; } // Dynamic dispatch |
||||||
|
}; |
||||||
|
``` |
||||||
|
|
||||||
|
Visit the following resources to learn more: |
||||||
|
|
||||||
|
- [@official@C++ Virtual Functions Documentation](https://en.cppreference.com/w/cpp/language/virtual) |
||||||
|
- [@article@GeeksforGeeks Virtual Functions Guide](https://www.geeksforgeeks.org/virtual-function-cpp/) |
||||||
|
- [@video@Virtual Functions Explained (YouTube)](https://www.youtube.com/watch?v=oIV2KchSyGQ&ab_channel=TheCherno) |
Loading…
Reference in new issue