【发布时间】:2012-06-20 12:36:44
【问题描述】:
我有关于虚拟基类的问题。
class a
{
public:
a();
~a();
};
class b: virtual public a
{
public:
b();
~b();
};
class c: virtual public a
{
public:
c();
~c();
};
class e: public b, c
{
public:
e();
~e();
};
每当我创建e 类的对象时,a 对象将通过哪个类在e 中创建?
【问题讨论】:
-
没有一个。虚拟基类与从它们继承的类“分离”(这实际上是虚拟继承的本质)。您甚至可以调用
a的非默认构造函数,例如:e::e() : a(bla), b(), c() { ... }
标签: c++ virtual-functions