I dont completely understand this:
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
}
Is it because someone might call call() using bPtr which is actually done on derived object? Or is there any other reason?
 
     
     
     
     
     
     
     
    