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

Можно ли в C++ использовать ключевое слово virtual для переопределения метода в производных классах?

Компании, где спрашивали
Телкор

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

sobes.tech AI

В C++ ключевое слово virtual используется для объявления виртуальных функций в базовом классе, чтобы обеспечить динамический (полиморфный) вызов методов в производных классах.

При переопределении метода в производном классе повторно писать virtual не обязательно, но можно — это не запрещено и не влияет на поведение. Главное, чтобы метод имел ту же сигнатуру и был объявлен виртуальным в базовом классе.

Пример:

class Base {
public:
    virtual void foo() {
        // реализация базового класса
    }
};

class Derived : public Base {
public:
    void foo() override {  // override необязателен, но рекомендуется
        // переопределённая реализация
    }
};

Таким образом, virtual в производном классе можно использовать, но обычно достаточно указать override для явного переопределения.