C ++: Private virtuelle Funktionen vs. reine virtuelle Funktionen [duplizieren]

Mögliche Duplikate:
Private virtuelle Methode in C ++

Wenn ich aus diesem Beitrag richtig verstanden habe (Private virtuelle Methode in C ++Wenn Sie eine virtuelle Funktion in einer Basisklasse erstellen, können die abgeleiteten Klassen diese überschreiben. Aber es scheint, dass die Dinge dort aufhören.

Wenn die virtuelle Funktion der Basisklasse jedoch rein ist, werden die abgeleiteten Klassen gezwungen, die Funktion zu implementieren. Eine reine (öffentliche) virtuelle Funktion ist also lediglich eine Schnittstelle. Ich kann hier einen Nutzen sehen.

Wenn Sie andererseits eine virtuelle Basisklassenfunktion als privat kennzeichnen, erhält die abgeleitete Klasse nur die Möglichkeit, die Funktion zu überschreiben. Ich sehe jedoch keinen Vorteil daraus. Es ist, als ob diese private virtuelle Funktion gar nicht da wäre. Die abgeleitete Klasse weiß offensichtlich nichts über die Existenz dieser virtuellen Funktion in der Basisklasse, weil sie privat ist. Gibt es also einen Vorteil, wenn eine private Basisklassefunktion in Bezug auf Vererbung oder Polymorphismus für virtuell erklärt wird?

Gibt es eine Situation, in der eine Basisklasse eine Funktion als "rein virtuell" und "privat" deklariert?

Vielen Dank.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage