This question already has answers here:
In C++, what is a virtual base class?
(11个答案)
virtual inheritance [duplicate]
(1个答案)
7年前关闭。
之间有什么区别
与
在第一种情况下,
这是一个说明:
(11个答案)
virtual inheritance [duplicate]
(1个答案)
7年前关闭。
之间有什么区别
class A {};
class Z: public A {};
和class A {};
class Z: virtual public A {};
最佳答案
假设没有其他继承层次结构,则在这种情况下没有区别。唯一的区别就是通过多种方式继承同一个类,例如,如下所示:
class ZA : public Z, public A {};
与
class ZA : virtual public Z, virtual public A {};
在第一种情况下,
ZA
将具有两个区域,每个区域具有单独的A
s-一个直接继承,一个通过Z
继承。在第二种情况下,将只有一个A
,可以通过两条路径继承并共享。这是一个说明:
关于c++ - C++中虚拟继承和简单继承之间的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18787977/