Почему предпочтительнее иметь не виртуальные интерфейсы?
Я прохожу эту статьюhttp://www.gotw.ca/publications/mill18.htm Херб Саттер. Автор упоминает, что написание не виртуальных интерфейсов отделяет спецификацию интерфейса от «деталей реализации (а именно, внутренне настраиваемое поведение)»
// Example 1: A traditional base class.
//
class Widget
{
public:
// Each of these functions might optionally be
// pure virtual, and if so might or might not have
// an implementation in Widget; see Item 27 in [1].
//
virtual int Process( Gadget& );
virtual bool IsDone();
// ...
};
Какую деталь реализации (или настраиваемое поведение) указывает приведенный выше пример? Я немного смущен тем, что не так с приведенным выше кодом, который требует от нас не виртуальных интерфейсов