Все методы класса являются виртуальными, поэтому подкласс может переопределить любой метод суперкласса (исключая конструкторы и деструктор).
Для переопределения метода необходимо, чтобы в подклассе был реализован метод с той же сигнатурой (то есть именем и списком параметров), что и в базовом классе.
Чтобы вызвать базовую реализацию перекрываемого метода, необходимо к имени метода добавить префикс из имени базового класса и двух символов двоеточия , например:
class robot : enemy
{
// ...
void move (int direction)
{
// Вызвать реализацию метода из суперкласса.
enemy::move(direction);
// Делаем что-то ещё.
}
}
<