Предположим, что у меня есть виртуальная функция foo() в классе B, и мне нужно немного другое поведение в одном из B производных классов, класс D. Можно ли создать функцию переопределения D:: foo() и вызвать B:: foo() оттуда, после обработки специального случая? Вот так:
void D::foo()
{
if (/*something*/)
// do something
else
B::foo();
}
Я не спрашиваю, будет ли это работать, я знаю, что так будет. Я хочу знать, правильно ли это с точки зрения хорошего OOD.