Back to questions
Junior — Middle
86
Каким образом реализован механизм полиморфизма в языке C++?
Companies where asked
Astra
Answer from AI
sobes.tech AI
В C++ механизм полиморфизма реализован через виртуальные функции и наследование. Полиморфизм позволяет объектам разных классов, связанных наследованием, использовать один и тот же интерфейс, но с разной реализацией.
Для этого в базовом классе объявляют функции как virtual, а в производных классах переопределяют их. При вызове через указатель или ссылку на базовый класс будет вызвана версия функции, соответствующая реальному типу объекта.
Пример:
class Base {
public:
virtual void show() { std::cout << "Base" << std::endl; }
};
class Derived : public Base {
public:
void show() override { std::cout << "Derived" << std::endl; }
};
Base* obj = new Derived();
obj->show(); // Выведет "Derived"
Это и есть динамический (рантайм) полиморфизм в C++.