Это безопасно достигнет цели, требующей от автора C
предоставить реализацию для f()
.
Я бы спросил, зачем это нужно & mdash; если базовая реализация не является «допустимой» в вашем проекте, то почему она существует и / или почему она virtual
?
Они все равно могут вызывать A::f()
, так что вопрос о том, можно ли это считать «сокрытием», открыт для дискуссий.