ВСЕ виртуальные функции должны быть реализованы в производных классах?
Это может показаться простым вопросом, но я не могу найти ответ где-либо еще.
Предположим, у меня есть следующее:
class Abstract {
public:
virtual void foo() = 0;
virtual void bar();
}
class Derived : Abstract {
public:
virtual void foo();
}
Это нормально, что класс Derived не реализует функцию bar ()? Что, если не ВСЕ мои производные классы нуждаются в функции bar (), но некоторые делают это. Все ли виртуальные функции абстрактного базового класса должны быть реализованы в производных классах или только те, которые являются чисто виртуальными? Спасибо