如何消除混合继承中的这种歧义?

use*_*152 5 c++ virtual-inheritance diamond-problem

我在项目中有一个案例,我需要将一个抽象类虚拟地继承到两个不同的类中,这两个类再次继承到最终类中,但编译器一直向我显示此错误

 error C2250: 'D': ambiguous inheritance of 'B &A::doit(void)'
Run Code Online (Sandbox Code Playgroud)

如何消除此类错误,类示例如下

 error C2250: 'D': ambiguous inheritance of 'B &A::doit(void)'
Run Code Online (Sandbox Code Playgroud)

我尝试先删除基类函数,但似乎不起作用。