14 Member access control [class.access]

14.6 Multiple access [class.paths]

Если имя может быть достигнуто несколькими путями через граф множественного наследования, доступ будет тем путем, который дает наибольший доступ. [Example:

class W { public: void f(); };
class A : private virtual W { };
class B : public virtual W { };
class C : public A, public B {
  void f() { W::f(); }          // OK
};

Поскольку W​::​f() доступен C​::​f() по общедоступному пути B, доступ разрешен. ]end example