派生类如何使用虚拟基类的实例

How instances of virtual base class are available to derived class?

本文关键字:基类 实例 虚拟 何使用 派生      更新时间:2023-10-16

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

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

class B : virtual public A
{
};

class c : public A
{
} ;
 class D : public B, public C
{
};

见附更正版本的注释:

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
{
} ;