'Base direta inacessível' causada por herança múltipla

Alerta de spoiler: Talvez uma pergunta estúpida. :)

#include <iostream>

using namespace std;

class Base
{
    public:
        virtual void YourMethod(int) const = 0;
};

class Intermediate : private Base
{
    public:
        virtual void YourMethod(int i) const
        {
            cout << "Calling from Intermediate" << i << "\n";
        }
};

class Derived : private Intermediate, public Base
{
    public:
        void YourMethod(int i) const
        {
            cout << "Calling from Derived : " << i << "\n";
        }
};

int main()
{
}

Alguem podeExplicar para mim por que isso lança o compiladorAviso:

main.cpp:21: warning: direct base ‘Base’ inaccessible in ‘Derived’ due to ambiguity

Agora, entendo que não há como esse código funcionar. Eu quero saber o porquê.Base é privado paraIntermediate portanto, não deve ser visível paraDerived atravésIntermediate. Então, de onde vem a ambiguidade? No construtor?

questionAnswers(2)

yourAnswerToTheQuestion