标签: c++ base-class virtual-inheritance
考虑以下情况:
struct A {}; struct B : virtual A {}; struct D : B, A {};
使用这种方法,我可以构造D类型的对象,或通过显式转换指向B::A对象的指针,但我无法以任何形式访问D的直接基类,因为它与B::A不明确。如果A有自己的构造函数,我甚至无法构造D的实例,因为我无法从A两次调用D构造函数。
D
B::A
A
有没有办法让我不知道如何使用,初始化和访问该直接基地的成员?
否则,为什么甚至允许继承组合?