派生类如何使用虚拟基类的实例
How instances of virtual base class are available to derived class?
如何在派生类中使用虚拟基类的实例,如何在以下代码中实现?
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
{
} ;
相关文章:
- 在C++中,是否可以基于给定的标识符创建基类的新实例,反之亦然
- 没有实例的基类?
- 从基类实例调用派生类方法而不进行强制转换
- 为什么派生类的实例从基类调用方法?
- 从模板基类派生是否在派生类声明的点实例化模板
- 是否可以从派生类返回基类的实例?
- 为什么不能在实例化对基类的引用的同时实例化指向派生类的指针?
- 选择专用于派生实例的基类的类模板
- 基类中向量的干净实例化
- 在C++中,为什么仅包含与其基类实例的联合的派生类占用的内存多于联合的大小?
- 为什么我无法使用受保护/私有继承访问派生实例中基类的受保护成员?
- 派生类实例共享同一基类实例
- 从基类实例调用派生类方法
- 如何在一个向量中管理基类实例和派生类实例
- 可以共享间接基类的基类实例
- C++从基类实例调用派生函数
- 如何使派生类的对象"reference"基类实例的成员?
- 将基类实例分配给c++中的派生实例
- 使用move语义将基类实例推入子类实例
- 使用基类实例创建派生类实例