Here is my code -

```
#include<iostream>
using namespace std;

class base
{
public:
    void sid()
    {
    }  
};

class derived : private base
{
public:
    void sid()
    {
    }
};

int main()
{
    base * ptr;
    ptr = new derived; // error: 'base' is an inaccessible base of 'derived'
    ptr->sid();
    return 0;
}

```

This gives a compile time error. 

```
error: 'base' is an inaccessible base of 'derived'

```

Since the compiler will try and call the base class `sid()` why do I get this error? Can someone please explain this.