Warum werden nicht virtuelle Schnittstellen bevorzugt?
Ich gehe diesen Artikel durchhttp: //www.gotw.ca/publications/mill18.ht von Herb Sutter. Der Autor erwähnt, dass das Schreiben von nicht virtuellen Schnittstellen die Schnittstellenspezifikation von den "Implementierungsdetails (nämlich dem intern anpassbaren Verhalten)" trennt.
// 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();
// ...
};
Was für Implementierungsdetails (oder ein anpassbares Verhalten) gibt das obige Beispiel an? Ich bin ein wenig verwirrt darüber, was mit dem obigen Code nicht stimmt, was erfordert, dass wir nicht-virtuelle Schnittstellen habe