yo no entiendo por completo este:herencia privada
class Base
{
public:
Base()
{
cout<<"Base" << endl;
}
virtual void call()
{
cout<<"Base call" << endl;
}
};
class Derived: private Base
{
public:
Derived()
{
cout<<"Derived" << endl;
}
};
int main(void)
{
Base *bPtr = new Derived(); // This is not allowed
}
¿Es porque alguien podría llamar call() usando bPtr que en realidad se hace en objeto derivado? ¿O hay alguna otra razón?
Es herencia de implementación en lugar de herencia de interfaz. –
@Laurence: cierto, pero eso es solo una terminología discutiendo. Me preocupaba la visión de afuera de la clase. –
"_it is not inheritance_" Absolutamente incorrecto. ** Es ** herencia, con acceso privado. – curiousguy