protected virtual Methode
-
Macht eine protected virtual Methode Sinn?
Falls ja, in welchen Faellen wendet man solch eine Konstruktion an?
-
Natürlich ergibt das Sinn. streambuf::overflow ist z.B. so was.
-
Falls ja, in welchen Faellen wendet man solch eine Konstruktion an?
Z.B. in Verbindung mit einer öffentlichen nicht virtuellen Memberfunktion. In dieser legt man das Grundgerüst für einen Algorithmus fest, ruft darin aber protected bzw. private virtuelle Memberfunktionen auf und gibt abgeleiteten Klassen damit die Möglichkeit Details zu variieren.
Diese Vorgehensweise ist unter dem Namen Template Method bekannt:Define the skeleton of an algorithm in an operation, deferring some steps to subclasses. Template Method lets subclasses redefine certain steps of an algorithm without changing the algorithm's structure.
protected macht dann sinn, wenn abgeleitete Klasse zusätzlich die virtuelle Memberfunktion direkt aufrufen können sollen.