Все ли виртуальные функции должны быть реализованы в производных классах?

Это может показаться простым вопросом, но я нигде не могу найти ответ.

Предположим, у меня есть следующее:

class Abstract {
public:
    virtual void foo() = 0;
    virtual void bar();
}

class Derived : Abstract {
public:
    virtual void foo();
}

Это нормально, что класс Derived не реализует функцию bar()? Что если не ВСЕ мои производные классы нуждаются в функции bar(), но некоторые нуждаются. Все ли виртуальные функции абстрактного базового класса должны быть реализованы в производных классах, или только те, которые являются чисто виртуальными? Спасибо

84
задан mikestaub 19 January 2012 в 18:51
поделиться