Junior — Middle
Pode-se usar a palavra-chave virtual em C++ para sobrescrever um método em classes derivadas?
sobes.tech IA
Resposta da IA
В C++ ключевое слово virtual используется для объявления виртуальных функций в базовом классе, чтобы обеспечить динамический (полиморфный) вызов методов в производных классах.
При переопределении метода в производном классе повторно писать virtual не обязательно, но можно — это не запрещено и не влияет на поведение. Главное, чтобы метод имел ту же сигнатуру и был объявлен виртуальным в базовом классе.
Пример:
class Base {
public:
virtual void foo() {
// реализация базового класса
}
};
class Derived : public Base {
public:
void foo() override { // override необязателен, но рекомендуется
// переопределённая реализация
}
};
Таким образом, virtual в производном классе можно использовать, но обычно достаточно указать override для явного переопределения.