C++ 混合虚拟基类和直接基类

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

考虑以下情况:

struct A {};
struct B : virtual A {};
struct D : B, A {};
通过这种方法,我可以构造
D
类型的对象,或者通过显式转换指向
B::A
对象的指针,但是我无法以任何形式访问D的直接基类,因为它与
B::A
不明确。如果
A
有自己的构造函数,我甚至无法构造
D
的实例,因为我无法从
D
调用
A
构造函数两次

有没有一种我不知道的方法可以使用,初始化和访问直接基地的成员


否则,为什么连继承组合都被允许?

“为什么连继承组合都被允许?”-如果我猜,我会说“因为没有真正的理由不允许它”。“为什么连继承组合都被允许?”-如果我猜,我会说“因为没有真正的理由不允许它”。。