Objekte abgeleiteter Klassen können bei privater Vererbung nicht in solche der Basisklasse umgewandelt werden:
class a { int aa; public: a(int i=0): aa(i) {} }; class b : private a { int bb; public: b(int i=0): bb(i) {} }; int main() { b vb(20); a* pa = &vb; }
Compiler:
error: no standard conversion of b* to a* error: cast: b* -> base a*; private base class
Darüberhinaus wird nur die Implementierung der Elementfunktionen vererbt, nicht die Schnittstelle
Private Vererbung modelliert nicht istein sondern
ist-implementiert-durch.