«Недоступная прямая база», вызванная множественным наследованием

Спойлер: возможно, глупый вопрос. :)

#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()
{
}

Может кто тообъяснять мне почему это выкидывает компиляторпредупреждение:

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

Теперь я понимаю, что этот код не будет работать. Я хочу знать почему.Base является частнымIntermediate поэтому он не должен быть виденDerived черезIntermediate, Так откуда же возникает двусмысленность? В конструкторе?

Ответы на вопрос(2)

Ваш ответ на вопрос