<分区>
有什么区别
class A {};
class Z: public A {};
和
class A {};
class Z: virtual public A {};
<分区>
有什么区别
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
的区域 - 一个直接继承,一个通过 Z
继承。在第二种情况下,只有一个 A
,通过两条路径继承并共享。
这是一个例子:
关于c++ - C++中虚继承和简单继承的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18787977/