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