Sobes.tech
Назад к вопросам
Junior — Middle
83

Каким образом в C++ реализуется механизм полиморфизма?

Ответ от нейросети

sobes.tech AI

В C++ механизм полиморфизма реализуется с помощью виртуальных функций и наследования. Полиморфизм позволяет объектам разных классов, связанных иерархией наследования, реагировать на одинаковые вызовы методов по-разному.

Для реализации полиморфизма в C++:

  1. В базовом классе объявляют метод как virtual.
  2. В производных классах этот метод переопределяется.
  3. При работе с указателями или ссылками на базовый класс вызов виртуальной функции будет динамически связываться с реализацией производного класса.

Пример:

#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++.