Sobes.tech
Back to questions
Junior — Middle
86

Является ли виртуальный метод допустимым шаблоном в C++?

Companies where asked
Открытые РешенияОткрытые Решения

Answer from AI

sobes.tech AI

Да, виртуальный метод является допустимым и широко используемым шаблоном в C++. Виртуальные методы позволяют реализовать полиморфизм — возможность вызывать методы производных классов через указатели или ссылки на базовый класс.

Пример:

class Base {
public:
    virtual void show() {
        std::cout << "Base show" << std::endl;
    }
    virtual ~Base() = default; // Виртуальный деструктор
};

class Derived : public Base {
public:
    void show() override {
        std::cout << "Derived show" << std::endl;
    }
};

int main() {
    Base* obj = new Derived();
    obj->show(); // Вызовет Derived::show благодаря виртуальному методу
    delete obj;
}

Использование виртуальных методов — стандартный способ реализации динамического полиморфизма в C++.