struct B { int i; };
struct D1 : virtual B {};
struct D2 : B {}; // <-- not virtual
struct DD : D1, D2 {};
在上面编码之后,编译器仍然D2
要求virtual
:
DD d;
d.i = 0; // error: request for member `i' is ambiguous
我不明白的是,一旦您提示了与(via ) 相关的编译B
器,那么为什么它仍然是模棱两可的?virtual
DD
D1
i
(如果我没记错的话,较旧的 VC++(2006 年)足以通过单virtual
继承来解决这个问题)