Update virtual-methods@hNBErGNiegLsUJn_vgcOR.md

pull/8497/head
Silicon27 3 weeks ago committed by GitHub
parent d5d38ee919
commit ad1ad87793
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 23
      src/data/roadmaps/cpp/content/virtual-methods@hNBErGNiegLsUJn_vgcOR.md

@ -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…
Cancel
Save