If a declaration can be reached by several paths through a multiple inheritance
graph, the access is that of the path that gives most access.
[Example 1: class W {public:void f(); };
class A :privatevirtual W {};
class B :publicvirtual W {};
class C :public A, public B {void f(){ W::f(); }// OK};
Since
W::f()
is available to
C::f()
along the public path through
B,
access is allowed.