What is a virtual function in C++?
A virtual function is chosen when the program runs, by the real type of the object. This is run time polymorphism.
#include <iostream>
#include <memory>
struct Animal {
virtual ~Animal() = default;
virtual void sound() const { std::cout << "...\n"; }
};
struct Dog : Animal { void sound() const override { std::cout << "Woof\n"; } };
struct Cat : Animal { void sound() const override { std::cout << "Meow\n"; } };
int main() {
std::unique_ptr<Animal> a[] = {std::make_unique<Dog>(), std::make_unique<Cat>()};
for (const auto& x : a) x->sound();
}
Output
Woof
Meow
See Polymorphism and Virtual Functions.
Learn more about the similar topics:
| Tutorials |
|---|
| No Content Found. |
| Exercises & Assignments |
|---|
| No Content Found. |
| Interview Questions & Answers |
|---|
| No Content Found. |