|
|
Если добраться до имени можно несколькими путями по графу, задающему множественное наследование, то право доступа этого имени считается максимальным из прав, получаемых на разных путях. Поясним это примером:
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(); } // нормально };
Поскольку W::f() доступно в C::f() по пути, связанному с общим наследованием из B, обращение является законным.
| |