Back to questions
Junior — Middle
84
Каким образом в C++ реализуется механизм полиморфизма?
Answer from AI
sobes.tech AI
В C++ механизм полиморфизма реализуется с помощью виртуальных функций и наследования. Полиморфизм позволяет объектам разных классов, связанных иерархией наследования, реагировать на одинаковые вызовы методов по-разному.
Для реализации полиморфизма в C++:
- В базовом классе объявляют метод как
virtual. - В производных классах этот метод переопределяется.
- При работе с указателями или ссылками на базовый класс вызов виртуальной функции будет динамически связываться с реализацией производного класса.
Пример:
#include <iostream>
class Animal {
public:
virtual void speak() {
std::cout << "Animal speaks" << std::endl;
}
virtual ~Animal() = default; // виртуальный деструктор
};
class Dog : public Animal {
public:
void speak() override {
std::cout << "Woof!" << std::endl;
}
};
int main() {
Animal* animal = new Dog();
animal->speak(); // Выведет: Woof!
delete animal;
return 0;
}
Таким образом, виртуальные функции обеспечивают динамическое связывание и позволяют реализовать полиморфизм в C++.