A派生B和C,D继承B和C,此时D就会包含经由B和C两个类“遗传”过来的A。如果不采用虚拟继承,在D调用A的函数和变量时,就必须指明使用的是A、B或者C中的哪一个版本。采用虚拟继承就没有这个问题了,公共的祖先会被合并,调用时就不需要明确指定方法或变量属于哪一个祖先了。
C++的虚拟继承
最新推荐文章于 2020-08-27 14:19:51 发布
A派生B和C,D继承B和C,此时D就会包含经由B和C两个类“遗传”过来的A。如果不采用虚拟继承,在D调用A的函数和变量时,就必须指明使用的是A、B或者C中的哪一个版本。采用虚拟继承就没有这个问题了,公共的祖先会被合并,调用时就不需要明确指定方法或变量属于哪一个祖先了。