I dont completely understand this:
class Base { public: Base() { cout<<\"Base\" << endl; } virtual void call() {
If you inherit privately any code that requires the conversion from Derived* to Base* must be a member or a friend of the Derived class.