質問させてください、仮想関数を持つクラスから菱形継承した場合、
普通のメンバの曖昧さの解決はできると思いますが、仮想関数は
どうなるのでしょうか。試してみたのですが仮想関数の継承でエラー出ました。
以下のようなパターンです↓
class A {
  int i;
  virtual void Hoge(void){i = 0;}
};

class B : virtual public A {
  void Hoge(void){i = 1;}
};

class C : virtual public A {
  void Hoge(void){i = 2;}
};

class D : public B, public C {
};

この場合DにHogeを書けばコンパイルは通りますが、
例えばDでBのHogeを使いたいなんて思ったときどうすればよいのでしょうか?
「多重継承なんか使うな」とかは無しでお願いします