仮想基底クラスを含む継承グラフでは、複数のパスを経由して到達できる名前は、
最大広範囲のアクセスを提供するパスを介してアクセスされます。
次に例を示します。
class L { public: void f(); }; class B1 : private virtual L { }; class B2 : public virtual L { }; class D : public B1, public B2 { public: void f() { // L::f() is accessed through B2 // and is public L::f(); } };
上記の例では、関数 f() はクラス B2 を介して アクセスされます。クラス B2 は公的に継承され、クラス B1 は 私的に継承されているので、クラス B2 の方がより多く のアクセスを提供します。
関連参照