Я расширяю класс, предоставляемый библиотекой третьей части. Класс, назовем его Foo
, имеет метод reset()
, который можно вызвать, чтобы перезапустить поведение Foo
. reset()
метод также используется внутри класса.
class Foo
{
public:
void reset () {
/* ... */
}
void something () {
reset();
}
};
Пока мне нужно перегрузить метод reset()
, чтобы сбросить и мои дополнительные функции:
class Bar : public Foo
{
public:
void reset() {
/* ...something... */
Foo::reset();
}
};
К сожалению, поскольку метод Foo::reset()
не является виртуальным, при вызове Bar::something()
вместо Bar::reset()
.
вызывается метод
Foo::reset()
.
Есть ли способ (в отличие от перегрузки Foo::something()
) сделать его обратно-виртуальным?