如何为派生类提供虚拟基类的实例,如何在以下代码中实现?
class A
{
public:
void test();
};
class B : virtual public A
{
};
class c : public A
{
} ;
class D : public B, public C
{
};
答案 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
{
} ;