[class.paths] (original) (raw)

1

#

If a name can be reached by several paths through a multiple inheritance graph, the access is that of the path that gives most access.

[ 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 };

SinceW​::​f()is available toC​::​f()along the public path throughB, access is allowed.

end example

]