一个虚函数的有关问题,想

一个虚函数的问题,想请教大家.
class   A{};
class   B:virtual   public   A{};
class   C:virtual   public   A{};
class   D:public   A{};
class   E:public   B,public   C,public   D{};

问题:假设有以上类结构,那么创建一个类型为E的变量,会构造几个A?为什么?




------解决方案--------------------
2 ?
------解决方案--------------------
两个。

B和C子对象共享一个A,D子对象自己包含另一个A。

google 虚拟继承

------解决方案--------------------
在构造函数里加打印,自己数一下就可以了
------解决方案--------------------
两个
其中有个菱形继承,只能算一个