虚拟基类的实例如何可用于派生类?

时间:2014-07-15 10:54:20

标签: c++

如何为派生类提供虚拟基类的实例,如何在以下代码中实现?

class A
{
public:
void test();
};


class B : virtual public A
{
};


class c : public A
{
} ;

 class D : public B, public C
{
};

1 个答案:

答案 0 :(得分:0)

请参阅已更正版本的内容评论:

class A
{
public:
void test();
};

class B: virtual public A // A is a virtual base class
{
};


class C : public A // C is a base class of A
{
} ;

class D: public B, public C // D has two base classes B and C
{
};

凭借继承,D得到A的两个副本,一个通过B,另一个通过C 如果您声明:

,则D中只能有一个A的共享副本
class C : virtual public A // C is a virtual base class of A
{
} ;