仮想継承とは

多重継承の際

a     a
|     |
b     c
 \ /
   d

こーせず、

   a     
 / \
b     c
 \ /
   d

こーしたいときに、

class b : public virtual a
{
};

class c : public virtual a
{
};

とすると、実現できます。
これを仮想継承といいます。