Sobes.tech
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++.