I dont completamente capito questo:ereditarietà privata
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
}
Forse perché qualcuno potrebbe chiamare call() utilizzando bPtr che in realtà è fatto in oggetto derivato? O c'è qualche altra ragione?
È l'ereditarietà dell'implementazione piuttosto che l'ereditarietà dell'interfaccia. –
@Laurence: vero, ma questa è solo una discussione sulla terminologia. Ero preoccupato per la vista esterna sulla classe. –
"_it is not inheritance_" Assolutamente sbagliato. È ** eredità **, con accesso privato. – curiousguy