Использование спецификатора override помогает предотвратить непреднамеренное наследование в коде, указывая компилятору, что функция должна переопределять виртуальную функцию из базового класса. 12
Если функция не соответствует виртуальной функции в базовом классе по списку параметров, возвращаемому типу, константности, или в базовом классе вообще нет функции с таким именем, то компилятор генерирует ошибку. 1 Это позволяет увидеть, что с переопределённой функцией что-то не так. 1
Если же override не указать, то компилятор будет считать, что речь идёт о скрытии функции, и никаких ошибок не будет генерировать, компиляция пройдёт успешно. 1