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
构造函数两次
有没有一种我不知道的方法可以使用,初始化和访问直接基地的成员
否则,为什么连继承组合都被允许?“为什么连继承组合都被允许?”-如果我猜,我会说“因为没有真正的理由不允许它”。“为什么连继承组合都被允许?”-如果我猜,我会说“因为没有真正的理由不允许它”。。