This question already has answers here:
In C++, what is a virtual base class?

(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/

10-11 22:17
查看更多