Почему я иногда вижу в примерах C++, когда речь идет о подклассах/наследовании, базовый класс имеет виртуальное ключевое слово, а иногда переопределенная функция также имеет виртуальное ключевое слово, почему иногда необходимо добавлять в подкласс виртуальное ключевое слово? Например:
class Base
{
Base(){};
virtual void f()
......
}
};
class Sub : public Base
{
Sub(){};
virtual void f()
...new impl of f() ...
}
};